:root{--swiper-theme-color:#007aff}:host{z-index:1;margin-left:auto;margin-right:auto;display:block;position:relative}.swiper{z-index:1;margin-left:auto;margin-right:auto;padding:0;list-style:none;display:block;position:relative;overflow:hidden}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{z-index:1;width:100%;height:100%;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box;display:flex;position:relative}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translate(0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;transition-property:transform;display:block;position:relative}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{backface-visibility:hidden;transform:translateZ(0)}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px;& .swiper-slide,& .swiper-cube-shadow{transform-style:preserve-3d}}.swiper-css-mode{&>.swiper-wrapper{scrollbar-width:none;-ms-overflow-style:none;overflow:auto;&::-webkit-scrollbar{display:none}}&>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}&.swiper-horizontal{&>.swiper-wrapper{scroll-snap-type:x mandatory}&>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-slides-offset-before);scroll-margin-inline-start:var(--swiper-slides-offset-before)}&>.swiper-wrapper>.swiper-slide:last-child{margin-inline-end:var(--swiper-slides-offset-after)}}&.swiper-vertical{&>.swiper-wrapper{scroll-snap-type:y mandatory}&>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-slides-offset-before);scroll-margin-block-start:var(--swiper-slides-offset-before)}&>.swiper-wrapper>.swiper-slide:last-child{margin-block-end:var(--swiper-slides-offset-after)}}&.swiper-free-mode{&>.swiper-wrapper{scroll-snap-type:none}&>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}}&.swiper-centered{&>.swiper-wrapper:before{content:"";flex-shrink:0;order:9999}&>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}}&.swiper-centered.swiper-horizontal{&>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}&>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}}&.swiper-centered.swiper-vertical{&>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}&>.swiper-wrapper:before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}}}.swiper-3d{& .swiper-slide-shadow,& .swiper-slide-shadow-left,& .swiper-slide-shadow-right,& .swiper-slide-shadow-top,& .swiper-slide-shadow-bottom,& .swiper-slide-shadow,& .swiper-slide-shadow-left,& .swiper-slide-shadow-right,& .swiper-slide-shadow-top,& .swiper-slide-shadow-bottom{pointer-events:none;z-index:10;width:100%;height:100%;position:absolute;top:0;left:0}& .swiper-slide-shadow{background:#00000026}& .swiper-slide-shadow-left{background-image:linear-gradient(270deg,#00000080,#0000)}& .swiper-slide-shadow-right{background-image:linear-gradient(90deg,#00000080,#0000)}& .swiper-slide-shadow-top{background-image:linear-gradient(#0000,#00000080)}& .swiper-slide-shadow-bottom{background-image:linear-gradient(#00000080,#0000)}}.swiper-lazy-preloader{z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-top-color:#0000;border-radius:50%;width:42px;height:42px;margin-top:-21px;margin-left:-21px;position:absolute;top:50%;left:50%}.swiper:not(.swiper-watch-progress),.swiper-watch-progress .swiper-slide-visible{& .swiper-lazy-preloader{animation:1s linear infinite swiper-preloader-spin}}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:root{--color-text:color-mix(in srgb, #ffffffd9, #20242beb var(--theme-light));--color-text-secondary:color-mix(in srgb, #ffffff80, #20242b9e var(--theme-light));--color-text-tertiary:color-mix(in srgb, #ffffff40, #20242b66 var(--theme-light));--color-text-quaternary:color-mix(in srgb, #ffffff1a, #20242b2e var(--theme-light));--color-text-quinary:color-mix(in srgb, #ffffff0d, #20242b14 var(--theme-light));--color-fill:color-mix(in srgb, #ffffff1a, #20242b17 var(--theme-light));--color-fill-secondary:color-mix(in srgb, #ffffff14, #20242b11 var(--theme-light));--color-fill-tertiary:color-mix(in srgb, #ffffff0d, #20242b0b var(--theme-light));--color-fill-quaternary:color-mix(in srgb, #ffffff08, #20242b06 var(--theme-light));--color-material-ultra-thick:color-mix(in srgb, #282828d6, #fafbfcf0 var(--theme-light));--color-material-thick:color-mix(in srgb, #282828b8, #fafbfce0 var(--theme-light));--color-material-medium:color-mix(in srgb, #28282899, #fafbfccc var(--theme-light));--color-material-thin:color-mix(in srgb, #2828287a, #fafbfcad var(--theme-light));--color-material-ultra-thin:color-mix(in srgb, #2828285c, #fafbfc8a var(--theme-light));--color-material-opaque:color-mix(in srgb, #282828, #f5f6f8 var(--theme-light));--color-blue:color-mix(in srgb, #0a84ff, #006ada var(--theme-light));--color-red:color-mix(in srgb, #ff6961, #cb3e3a var(--theme-light));--color-green:color-mix(in srgb, #34c759, #228947 var(--theme-light));--color-histogram-blue:color-mix(in srgb, #409cff, #206ed1 var(--theme-light));--color-orange:color-mix(in srgb, #ff9f0a, #b6660c var(--theme-light));--color-background:color-mix(in srgb, #1c1c1e, #f7f8fa var(--theme-light));--color-accent:color-mix(in srgb, #007aff, #006bd6 var(--theme-light));--color-on-accent:color-mix(in srgb, #ffffffd9, white var(--theme-light));--gallery-histogram-grid:color-mix(in srgb, #ffffff0a, #20242b12 var(--theme-light));--gallery-histogram-highlight:color-mix(in srgb, #ffffff08, #20242b08 var(--theme-light));--portfolio-background:color-mix(in srgb, #161616, #f7f8fa var(--theme-light));--portfolio-text:color-mix(in srgb, #eee, #252a32 var(--theme-light));--portfolio-thumbnail:color-mix(in srgb, #282828, #e9ecf0 var(--theme-light));--portfolio-error:color-mix(in srgb, #aaa, #606771 var(--theme-light));--portfolio-footer:color-mix(in srgb, #a7adb0, #666e79 var(--theme-light));--portfolio-muted:color-mix(in srgb, #888, #666e79 var(--theme-light));--viewer-action-text:color-mix(in srgb, white, #20242beb var(--theme-light));--viewer-action-border:color-mix(in srgb, #ffffff1a, #20242b1a var(--theme-light));--viewer-action-hover:color-mix(in srgb, #0006, #e2e6ecf0 var(--theme-light));--viewer-action-hover-border:color-mix(in srgb, #ffffff26, #20242b26 var(--theme-light))}@property --theme-light{syntax:"<percentage>";inherits:true;initial-value:100%}:root{--theme-light:100%;--theme-duration:.8s;color-scheme:light;transition:--theme-light var(--theme-duration) cubic-bezier(.4, 0, .2, 1)}:root[data-theme=dark]{--theme-light:0%;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme]){--theme-light:0%;color-scheme:dark}}.theme-control{color:var(--color-text);flex-shrink:0;align-items:center;gap:2px;display:inline-flex;position:relative}.theme-control .theme-toggle,.theme-control .theme-menu>summary{height:32px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;padding:0;display:inline-flex}.theme-control .theme-toggle{width:32px}.theme-control .theme-menu>summary{width:22px;color:var(--color-text-secondary);list-style:none}.theme-menu>summary::-webkit-details-marker{display:none}.theme-control .theme-toggle:hover,.theme-control .theme-menu>summary:hover{background:var(--color-fill-tertiary)}.theme-control :is(button,summary):focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.theme-moon{--moon-size:22px;box-sizing:content-box;width:var(--moon-size);height:var(--moon-size);font:var(--moon-size)/1 "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif;padding-inline:2px;display:block;overflow:hidden}.theme-moon-rest,.theme-moon-rest>span,.theme-moon-orbit>span{width:var(--moon-size);height:var(--moon-size);text-align:center;display:block}.theme-moon-dark,.theme-moon-orbit{display:none!important}:root[data-theme=dark] .theme-moon-light{display:none}:root[data-theme=dark] .theme-moon-dark{display:block!important}@media (prefers-color-scheme:dark){:root:not([data-theme]) .theme-moon-light{display:none}:root:not([data-theme]) .theme-moon-dark{display:block!important}}:root[data-theme-transition] .theme-moon-rest{display:none}:root[data-theme-transition] .theme-moon-orbit{display:block!important}:root[data-theme-transition=light] .theme-moon-orbit{animation:moon-wax var(--theme-duration) steps(4, end) both}:root[data-theme-transition=dark] .theme-moon-orbit{animation:moon-wane var(--theme-duration) steps(4, end) both}@keyframes moon-wax{0%{transform:translateY(0)}to{transform:translateY(calc(var(--moon-size) * -4))}}@keyframes moon-wane{0%{transform:translateY(calc(var(--moon-size) * -4))}to{transform:translateY(calc(var(--moon-size) * -8))}}.theme-menu{position:relative}.theme-options{z-index:60;background:var(--color-material-thick);min-width:166px;color:var(--color-text);border:1px solid var(--color-fill);-webkit-backdrop-filter:blur(40px);box-shadow:var(--gallery-shadow,0 8px 32px var(--color-fill-tertiary));border-radius:12px;padding:6px;position:absolute;top:calc(100% + 8px);right:0}.theme-options button{text-align:left;cursor:pointer;border-radius:7px;align-items:center;gap:10px;width:100%;min-height:40px;font:13px/1.4 -apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:flex;color:inherit!important;background:0 0!important;border:0!important;padding:8px 10px!important}.theme-options button:hover,.theme-options button[aria-pressed=true]{background:var(--color-fill-tertiary)!important}.theme-option-check{width:14px;margin-left:auto}.site-theme-control{z-index:40;position:absolute;top:24px;right:2vw}.gallery-page .site-theme-control{top:calc(8px + env(safe-area-inset-top));right:max(12px, env(safe-area-inset-right));position:fixed}.gallery-page:has(.site-theme-control) .gallery-header-content{padding-right:calc(78px + env(safe-area-inset-right))}@media (width<=599px){.portfolio-page .site-theme-control{right:16px}}@media (pointer:coarse){.theme-control .theme-toggle{width:40px;height:44px}.theme-control .theme-menu>summary{width:28px;height:44px}.theme-options button{min-height:44px}.gallery-page .site-theme-control{top:calc(2px + env(safe-area-inset-top))}.gallery-page:has(.site-theme-control) .gallery-header-content{padding-right:calc(88px + env(safe-area-inset-right))}}@media (prefers-reduced-motion:reduce){:root{--theme-duration:0s}:root[data-theme-transition] .theme-moon-rest{display:block}:root[data-theme-transition] .theme-moon-orbit{display:none!important}}:root:not([data-theme]) .site-theme-control{display:none}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_astro/geist-latin-ext-wght-normal.DC-KSUi6.woff2)format("woff2");unicode-range:U+100-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_astro/geist-latin-wght-normal.BgDaEnEv.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.gallery-page,.photo-dialog{--gallery-font-sans:Geist, ui-sans-serif, system-ui, sans-serif;--gallery-font-mono:"OperatorMonoSSmLig Nerd Font", "Cascadia Code PL", "FantasqueSansMono Nerd Font", "operator mono", JetBrainsMono, "Fira code Retina", "Fira code", Consolas, Monaco, monospace;--gallery-blur-panel:40px;--gallery-blur-control:12px;--gallery-blur-scrim:4px;--gallery-border:color-mix(in srgb, var(--color-accent) 20%, transparent);--gallery-wash:color-mix(in srgb, var(--color-accent) 5%, transparent);--gallery-shadow:0 8px 32px color-mix(in srgb, var(--color-accent) 8%, transparent), 0 4px 16px color-mix(in srgb, var(--color-accent) 6%, transparent), 0 2px 8px #0000001a;--gallery-shadow-up:0 -8px 32px color-mix(in srgb, var(--color-accent) 8%, transparent), 0 -4px 16px color-mix(in srgb, var(--color-accent) 6%, transparent), 0 -2px 8px #0000001a;--viewer-font-sans:var(--gallery-font-sans);--viewer-font-mono:var(--gallery-font-mono);--viewer-blur-panel:var(--gallery-blur-panel);--viewer-blur-control:var(--gallery-blur-control);--viewer-blur-scrim:var(--gallery-blur-scrim);--viewer-border:var(--gallery-border);--viewer-wash:var(--gallery-wash);--viewer-shadow:var(--gallery-shadow);--viewer-shadow-up:var(--gallery-shadow-up);--viewer-histogram-grid:var(--gallery-histogram-grid);--viewer-histogram-highlight:var(--gallery-histogram-highlight);color-scheme:inherit;font-family:var(--gallery-font-sans)}.viewer-icon{width:1em;height:1em;mask:var(--viewer-icon) center / contain no-repeat;background:currentColor;flex-shrink:0;display:inline-block}.i-mingcute-close-line{--viewer-icon:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-linecap%3D%22round%22%20stroke-width%3D%222%22%20d%3D%22m5.636%205.637l12.728%2012.728m-12.728%200L18.364%205.637%22/%3E%3C/svg%3E)}.i-mingcute-left-line{--viewer-icon:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%222%22%20d%3D%22M14.657%2017.657L9%2012l5.657-5.657%22/%3E%3C/svg%3E)}.i-mingcute-right-line{--viewer-icon:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%222%22%20d%3D%22M9.343%206.343L15%2012l-5.657%205.657%22/%3E%3C/svg%3E)}.i-mingcute-share-2-line{--viewer-icon:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20d%3D%22m16.407%206.81l-6%203.145m0%204.089l6%203.145M11%2012a4%204%200%201%201-8%200a4%204%200%200%201%208%200Zm10-6.5a2.5%202.5%200%201%201-5%200a2.5%202.5%200%200%201%205%200Zm0%2013a2.5%202.5%200%201%201-5%200a2.5%202.5%200%200%201%205%200Z%22/%3E%3C/svg%3E)}.i-mingcute-information-line{--viewer-icon:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%222%22%20d%3D%22M12%208h.002M11%2011h1v6h.5m8.5-5a9%209%200%201%201-18%200a9%209%200%200%201%2018%200%22/%3E%3C/svg%3E)}.i-mingcute-external-link-line{--viewer-icon:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%222%22%20d%3D%22M17%2013v6a1%201%200%200%201-1%201H5a1%201%200%200%201-1-1V8a1%201%200%200%201%201-1h6m9%202V4h-5m-5%2010l9.5-9.5%22/%3E%3C/svg%3E)}.i-mingcute-zoom-in-line{--viewer-icon:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-linecap%3D%22round%22%20stroke-width%3D%222%22%20d%3D%22M7%2010.5h7M10.5%2014V7m5.379%208.879l4.242%204.242M18%2010.5a7.5%207.5%200%201%201-15%200a7.5%207.5%200%200%201%2015%200Z%22/%3E%3C/svg%3E)}.i-mingcute-zoom-out-line{--viewer-icon:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-linecap%3D%22round%22%20stroke-width%3D%222%22%20d%3D%22M7%2010.5h7m1.803%205.303l4.318%204.318M18%2010.5a7.5%207.5%200%201%201-15%200a7.5%207.5%200%200%201%2015%200Z%22/%3E%3C/svg%3E)}.i-mingcute-refresh-2-line{--viewer-icon:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%222%22%20d%3D%22M3.811%208.264A9%209%200%200%201%2014.33%203.307a9%209%200%200%201%206.672%208.622c0%20.08-.088.126-.154.082l-2.678-1.804c-.091-.062-.03-.205.078-.181L20%2010.41m.189%205.327c-1.789%203.932-6.208%206.112-10.519%204.956a9%209%200%200%201-6.672-8.622c0-.08.088-.126.154-.082l2.678%201.805c.091.061.03.204-.078.18L4%2013.59%22/%3E%3C/svg%3E)}.i-mingcute-arrow-up-line{--viewer-icon:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%222%22%20d%3D%22M12%2020V5m-5.657%205L12%204.343L17.657%2010%22/%3E%3C/svg%3E)}.i-mingcute-arrow-down-line{--viewer-icon:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%222%22%20d%3D%22M12%2019V4M6.343%2014L12%2019.657L17.657%2014%22/%3E%3C/svg%3E)}.i-mingcute-layout-right-line{--viewer-icon:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20d%3D%22M15%204v16M5%2020h14a1%201%200%200%200%201-1V5a1%201%200%200%200-1-1H5a1%201%200%200%200-1%201v14a1%201%200%200%200%201%201Z%22/%3E%3C/svg%3E)}.photo-dialog{z-index:50;isolation:isolate;width:100%;max-width:none;height:100dvh;max-height:none;color:var(--color-text);background:0 0;border:0;margin:0;padding:0;font-size:14px;line-height:1.5;position:fixed;inset:0;overflow:hidden}.photo-dialog::backdrop{background:0 0}.photo-dialog :focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.photo-dialog button{font-family:inherit}.photo-dialog button:not(.viewer-thumbnail-button):not(.viewer-action-button){color:var(--color-text);background:var(--color-fill-tertiary);border:1px solid var(--viewer-border);border-radius:8px;padding:4px 8px;font-size:12px}.photo-dialog button:not(.viewer-thumbnail-button):not(.viewer-action-button):hover{background:var(--color-fill)}.photo-dialog button:disabled{cursor:default}.photo-dialog .muted{color:var(--color-text-secondary);font-size:12px}.photo-dialog .swiper-button-next,.photo-dialog .swiper-button-prev{display:none!important}.photo-dialog .swiper-slide{touch-action:manipulation;overflow:visible}.photo-dialog .swiper{touch-action:pan-x}.photo-dialog .contain-intrinsic-size{contain-intrinsic-size:64px;content-visibility:auto}.viewer-backdrop-presence,.viewer-backdrop-base,.viewer-backdrop,.viewer-background-layer{pointer-events:none;position:absolute;inset:0}.viewer-backdrop-base{background:var(--color-material-opaque)}.viewer-backdrop{overflow:hidden}.viewer-background-layer{opacity:1}.viewer-background-hash,.viewer-background-thumbnail{object-fit:cover;width:100%;max-width:none;height:100%;display:block;transform:scale(1.1)}.viewer-background-hash{opacity:.6}.viewer-background-thumbnail{filter:blur(var(--viewer-blur-panel));opacity:.6}.viewer-shell{height:100%;display:flex;position:relative}.viewer-stage{touch-action:none;flex:1;min-width:0;height:100%;min-height:0;position:relative}.viewer-drag-content{flex-direction:column;width:100%;height:100%;min-height:0;display:flex}.viewer-image-stage{flex:1;min-width:0;min-height:0;position:relative}.viewer-gesture-stage{touch-action:none;position:absolute;inset:0}.photo-dialog .viewer-swiper{width:100%;height:100%}.viewer-slide-content,.viewer-slide-visibility,.viewer-progressive-image{width:100%;height:100%;position:relative}.viewer-slide-preview,.viewer-entry-catchup{pointer-events:none;position:absolute;inset:0}.viewer-entry-catchup{z-index:10}.viewer-thumbhash{object-fit:contain;pointer-events:none;width:100%;height:100%}.viewer-media{width:100%;height:100%;position:relative;overflow:hidden}.viewer-preview{object-fit:contain;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.viewer-fallback{object-fit:contain;user-select:none;width:100%;height:100%;display:block}.fallback-stage{touch-action:none;position:absolute;inset:0;overflow:hidden}.viewer-chrome-presence{z-index:30;pointer-events:none;transition:opacity .2s;position:absolute;inset:0}.viewer-toolbar{top:calc(env(safe-area-inset-top) + 16px);left:calc(env(safe-area-inset-left) + 16px);right:calc(env(safe-area-inset-right) + 16px);z-index:30;pointer-events:none;justify-content:space-between;align-items:center;gap:8px;display:flex;position:absolute}.viewer-toolbar>*{pointer-events:auto}.viewer-toolbar[inert]>*{pointer-events:none}.viewer-counter{font-variant-numeric:tabular-nums;color:var(--color-text-secondary);background:var(--color-material-ultra-thick);backdrop-filter:blur(var(--viewer-blur-panel));border:1px solid var(--color-fill-tertiary);white-space:nowrap;border-radius:999px;padding:4px 8px;font-size:12px}.viewer-actions{align-items:center;gap:8px;display:flex}.photo-dialog .icon-button.viewer-action-button{border:1px solid var(--viewer-action-border);width:32px;height:32px;color:var(--viewer-action-text);background:var(--color-material-ultra-thick);backdrop-filter:blur(var(--viewer-blur-panel));pointer-events:auto;border-radius:999px;flex:none;justify-content:center;align-items:center;gap:6px;padding:0;transition:opacity .2s,color .2s,background-color .2s,border-color .2s;display:inline-flex}.photo-dialog .icon-button.viewer-action-button:hover:not(:disabled){background:var(--viewer-action-hover);color:var(--viewer-action-text);border-color:var(--viewer-action-hover-border)}.photo-dialog .icon-button.viewer-action-button:active:not(:disabled){background:var(--color-material-opaque)}.photo-dialog .icon-button.viewer-action-button:disabled{opacity:.28}.photo-dialog .icon-button.viewer-action-active,.photo-dialog .icon-button.viewer-action-active:hover:not(:disabled){background:var(--color-accent);border-color:var(--viewer-border)}.photo-dialog .icon-button.viewer-action-pill{width:auto;padding-inline:12px}.photo-dialog .viewer-secondary-action{opacity:0}.viewer-image-stage:hover .viewer-secondary-action:not(:disabled),.viewer-actions:has(.viewer-secondary-action:focus-visible) .viewer-secondary-action:not(:disabled){opacity:1}.photo-dialog .viewer-previous,.photo-dialog .viewer-next{z-index:20;opacity:0;position:absolute;top:50%;transform:translateY(-50%)}.viewer-previous{left:calc(env(safe-area-inset-left) + 16px)}.viewer-next{right:calc(env(safe-area-inset-right) + 16px)}.viewer-image-stage:hover :is(.viewer-previous,.viewer-next):not(:disabled),.photo-dialog :is(.viewer-previous,.viewer-next):focus-visible{opacity:1}.viewer-inspector-slot{z-index:30;flex:none;min-width:0;height:100%;position:relative}.viewer-inspector{min-height:0;color:var(--color-text);background:var(--color-material-medium);background-image:linear-gradient(to bottom right, var(--color-material-medium), var(--color-material-thick));backdrop-filter:blur(var(--viewer-blur-panel));box-shadow:var(--viewer-shadow);flex-direction:column;display:flex;position:relative}.viewer-desktop-inspector{width:320px;height:100%;padding-top:env(safe-area-inset-top)}.viewer-desktop-inspector:before{content:"";left:0;z-index:1;pointer-events:none;background:linear-gradient(to bottom, transparent -15%, var(--viewer-border) 50%, transparent 115%);width:.5px;position:absolute;inset-block:0}.inspector-glow,.inspector-sheet-glow{pointer-events:none;background:linear-gradient(to bottom right, var(--viewer-wash), transparent, var(--viewer-wash));position:absolute;inset:0}.viewer-inspector>header{z-index:30;flex:none;justify-content:space-between;align-items:center;height:60px;padding:14px 16px;display:flex;position:relative}.inspector-header-label{color:var(--color-text);align-items:center;gap:6px;font-size:15px;font-weight:500;display:inline-flex}.inspector-desktop-content{overflow-anchor:none;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--color-fill) transparent;min-height:0;padding:0 16px calc(16px + env(safe-area-inset-bottom));flex:1;position:relative;overflow-y:auto;mask-image:linear-gradient(#0000,#000 4px calc(100% - 8px),#0000)}.metadata-content{flex-direction:column;gap:16px;display:flex}.photo-dialog .metadata-content .muted{font-size:13px}.metadata-content *{user-select:text}.metadata-section{flex-direction:column;gap:8px;display:flex}.metadata-section h3{color:var(--color-text);font-size:15px;font-weight:500}.metadata-section:has(>.metadata-rows:empty):not(:has(>.metadata-rows>div)){display:none}.photo-dialog .metadata-rows{flex-direction:column;gap:4px;margin:0;font-size:13px;line-height:1.5;display:flex}.photo-dialog .metadata-rows>div{justify-content:space-between;align-items:baseline;gap:16px;min-width:0;display:flex}.photo-dialog .metadata-rows dt{color:var(--color-text-secondary);overflow-wrap:anywhere;flex-shrink:0;max-width:58%}.photo-dialog .metadata-rows dd{min-width:0;color:var(--color-text);text-align:right;overflow-wrap:anywhere;font-family:var(--viewer-font-mono);font-variant-numeric:tabular-nums;margin:0}.photo-dialog .metadata-tone-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px;display:grid}.photo-dialog .metadata-tone-grid>div{gap:4px}.photo-dialog .metadata-tone-grid dt{max-width:none}.exposure-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;font-size:13px;display:grid}.exposure-grid>span{border:1px solid var(--viewer-border);background:color-mix(in srgb, var(--color-accent) 10%, transparent);overflow-wrap:anywhere;font-variant-numeric:tabular-nums;border-radius:6px;align-items:center;gap:8px;min-height:24px;padding:2px 8px;display:flex}.exposure-grid svg{width:14px;height:14px;color:var(--color-text-secondary);flex-shrink:0}.metadata-tags{flex-wrap:wrap;gap:6px;display:flex}.metadata-tags li{border:1px solid var(--viewer-border);background:color-mix(in srgb, var(--color-accent) 10%, transparent);color:var(--color-text);overflow-wrap:anywhere;border-radius:999px;max-width:100%;padding:4px 8px;font-size:13px;line-height:16px}.photo-dialog .photo-caption{color:var(--color-text-secondary);white-space:pre-line;overflow-wrap:anywhere;font-size:13px;line-height:1.7}.viewer-attribution{color:var(--color-text-secondary);overflow-wrap:anywhere;margin-top:24px;padding-top:16px;font-size:11px;line-height:1.8;position:relative}.viewer-attribution:before{content:"";top:0;background:linear-gradient(to right, transparent, var(--color-fill), transparent);height:.5px;position:absolute;inset-inline:0}.viewer-attribution a{text-underline-offset:2px;text-decoration:underline}.viewer-histogram-plot{background:var(--color-material-ultra-thin);height:128px;backdrop-filter:blur(var(--viewer-blur-panel));outline:1px solid var(--color-fill-tertiary);border-radius:4px;position:relative;overflow:hidden}.photo-dialog .histogram{width:100%;height:100%;transition:opacity .2s;display:block}.viewer-histogram[data-histogram-state=loading] .histogram{opacity:.3}.viewer-histogram[data-histogram-state=error] .histogram{opacity:0}.viewer-histogram-status{text-align:center;color:var(--color-text-secondary);background:var(--color-material-ultra-thin);backdrop-filter:blur(var(--viewer-blur-panel));justify-content:center;align-items:center;padding:12px;font-size:13px;display:flex;position:absolute;inset:0}.histogram-note{color:var(--color-text-secondary);justify-content:space-between;align-items:center;gap:8px;margin-top:6px;font-size:11px;display:flex}.histogram-legend{font-family:var(--viewer-font-mono);gap:6px;display:inline-flex}.histogram-legend>:first-child{color:var(--color-red)}.histogram-legend>:nth-child(2){color:var(--color-green)}.histogram-legend>:nth-child(3){color:var(--color-histogram-blue)}.viewer-minimap{border:1px solid var(--viewer-border);background:var(--color-material-ultra-thin);width:100%;height:160px;backdrop-filter:blur(var(--viewer-blur-panel));border-radius:8px;position:relative;overflow:hidden}.viewer-minimap>.viewer-minimap-canvas,.viewer-minimap-link{position:absolute;inset:0}.viewer-minimap-link{z-index:10;transition:background-color .2s}.viewer-minimap-link:hover{background:var(--viewer-wash)}.viewer-minimap-link:focus-visible{outline-offset:-3px}.viewer-minimap-marker{background:var(--color-accent);width:8px;height:8px;box-shadow:0 0 0 2px var(--color-text), 0 0 0 6px var(--viewer-border);pointer-events:none;border-radius:999px;position:absolute;top:50%;left:50%;translate:-50% -50%}.viewer-minimap-status{background:var(--color-material-ultra-thin);backdrop-filter:blur(var(--viewer-blur-control));color:var(--color-text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:6px;font-size:13px;display:flex;position:absolute;inset:0}.viewer-minimap-status span{font-family:var(--viewer-font-mono)}.viewer-minimap-attribution{z-index:20;color:var(--color-text-secondary);background:var(--color-material-ultra-thick);backdrop-filter:blur(var(--viewer-blur-control));padding:1px 4px;font-size:10px;position:absolute;bottom:0;right:0}.metadata-map-link{color:var(--color-text-secondary);text-underline-offset:3px;font-size:13px}.metadata-map-link:hover{color:var(--color-text);text-decoration:underline}.viewer-thumbnails-motion{flex:none;min-width:0}.viewer-thumbnail-bar{z-index:10;padding-bottom:env(safe-area-inset-bottom);box-shadow:var(--viewer-shadow-up);flex-shrink:0;position:relative}.viewer-thumbnail-bar:before{content:"";background:var(--color-material-ultra-thin);backdrop-filter:blur(var(--viewer-blur-panel));pointer-events:none;position:absolute;inset:0}.viewer-thumbnail-bar:after{content:"";inset-inline:0;z-index:1;background:linear-gradient(to right, transparent, var(--viewer-border), transparent);pointer-events:none;height:.5px;position:absolute;top:0}.viewer-thumbnail-glow{pointer-events:none;background:linear-gradient(to top, var(--viewer-wash), transparent);position:absolute;inset:0}.photo-dialog .viewer-filmstrip{z-index:1;overscroll-behavior:contain;touch-action:pan-x;scrollbar-width:none;position:relative;overflow:auto hidden}.viewer-filmstrip::-webkit-scrollbar{display:none}.viewer-thumbnail-item{position:absolute;top:0}.photo-dialog .viewer-thumbnail-button{opacity:.5;filter:grayscale();background:0 0;border:0;border-radius:0;width:100%;height:100%;padding:0;transition:opacity .2s,filter .2s;display:block;position:relative;overflow:hidden}.photo-dialog .viewer-thumbnail-button.selected{opacity:1;filter:none;z-index:10;box-shadow:0 0 20px var(--viewer-border)}.viewer-thumbnail-button.selected:after{content:"";z-index:1;border:1px solid var(--color-accent);pointer-events:none;position:absolute;inset:2px}.photo-dialog .viewer-thumbnail-button:hover,.photo-dialog .viewer-thumbnail-button:focus-visible{opacity:1;filter:none;z-index:20}.photo-dialog .viewer-thumbnail-button:focus-visible{outline-offset:-4px}.viewer-thumbnail-image{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.viewer-thumbnail-hover{z-index:60;border:1px solid var(--viewer-border);background:var(--color-material-thick);width:320px;max-width:calc(100vw - 32px);backdrop-filter:blur(var(--viewer-blur-panel));box-shadow:var(--viewer-shadow-up);pointer-events:none;border-radius:16px;overflow:hidden}.viewer-thumbnail-hover-inner,.viewer-thumbnail-hover-image{width:100%;position:relative;overflow:hidden}.viewer-thumbnail-hover-caption{color:#fff;background:linear-gradient(#0000,#0009);padding:12px;position:absolute;inset:auto 0 0}.viewer-thumbnail-hover-title{overflow-wrap:anywhere;font-size:14px}.viewer-thumbnail-hover-date{color:#fffc;margin-top:4px;font-size:12px}.viewer-gesture-hint{white-space:nowrap;border:1px solid var(--color-fill-tertiary);background:var(--color-material-ultra-thick);color:var(--color-text-secondary);backdrop-filter:blur(var(--viewer-blur-panel));pointer-events:none;z-index:20;border-radius:999px;align-items:center;gap:8px;padding:4px 12px;font-size:12px;display:flex;position:absolute;bottom:16px;left:50%;translate:-50%}.viewer-image-stage:has(.viewer-status) .viewer-gesture-hint{visibility:hidden}.hint-divider{background:linear-gradient(to bottom, transparent, var(--color-fill), transparent);width:.5px;height:12px}.mobile-inspector-sheet{pointer-events:none;z-index:30;justify-content:center;display:flex;position:fixed;inset:auto 0 0}.photo-dialog .inspector-sheet-surface{border:1px solid var(--viewer-border);background:var(--color-material-thick);width:100%;max-width:1024px;backdrop-filter:blur(var(--viewer-blur-panel));box-shadow:var(--viewer-shadow-up);border-bottom:0;border-radius:16px 16px 0 0;padding:0;overflow:hidden}.inspector-sheet-surface>header{height:88px;padding:24px 16px 0}.inspector-sheet-handle{background:var(--color-fill);border-radius:999px;width:48px;height:6px;position:absolute;top:12px;left:calc(50% - 24px)}.inspector-sheet-content{overflow-anchor:none;overscroll-behavior:contain;touch-action:pan-y;min-height:0;padding:8px max(16px, env(safe-area-inset-right)) calc(env(safe-area-inset-bottom) + 16px) max(16px, env(safe-area-inset-left));scrollbar-width:thin;scrollbar-color:var(--color-fill) transparent;flex:1;position:relative;overflow-y:auto}.inspector-sheet-content *{user-select:text}.photo-dialog[data-mobile=true] .viewer-drag-content{overflow:hidden}.photo-dialog[data-mobile=true] .viewer-toolbar{top:calc(env(safe-area-inset-top) + 8px);left:calc(env(safe-area-inset-left) + 8px);right:calc(env(safe-area-inset-right) + 8px)}.photo-dialog[data-mobile=true] .metadata-content{gap:12px}.photo-dialog[data-mobile=true] .viewer-actions .viewer-secondary-action{opacity:1}.photo-dialog[data-mobile=true] .viewer-action-button{position:relative}.photo-dialog[data-mobile=true] .viewer-action-button:before{content:"";border-radius:inherit;position:absolute;inset:-6px}.photo-dialog[data-mobile=true] .viewer-actions button:is([aria-label=放大],[aria-label=缩小],[aria-label=适应屏幕]){display:none}.photo-dialog[data-mobile=true] .swiper-slide{touch-action:pan-x}.viewer-status,.viewer-message{color:var(--color-text);background:var(--color-material-ultra-thick);backdrop-filter:blur(var(--viewer-blur-panel));border:1px solid var(--viewer-border);z-index:20;overflow-wrap:anywhere;border-radius:999px;align-items:center;gap:8px;max-width:85%;padding:8px 12px;font-size:12px;display:flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.viewer-status{bottom:max(16px, env(safe-area-inset-bottom));right:max(16px, env(safe-area-inset-right));pointer-events:none;white-space:nowrap;font-variant-numeric:tabular-nums;border-radius:12px;gap:8px;margin:0;padding:8px 10px;font-size:12px;line-height:1.4;left:auto;transform:none}.viewer-loading-details{flex-direction:column;gap:2px;display:flex}.viewer-loading-heading{align-items:baseline;gap:8px;display:flex}.viewer-loading-heading strong{font-weight:600}.viewer-loading-heading>span,.viewer-loading-bytes{color:var(--color-text-secondary)}.viewer-loading-bytes{font-size:11px}.viewer-message{bottom:90px}.viewer-status .loading-dot{border:2px solid var(--color-fill);border-top-color:var(--color-text);border-radius:999px;flex-shrink:0;width:14px;height:14px;animation:1s linear infinite viewer-loading-spin}@keyframes viewer-loading-spin{to{transform:rotate(360deg)}}.viewer-error{background:var(--color-material-thick);width:min(85%,320px);backdrop-filter:blur(var(--viewer-blur-panel));text-align:center;border:1px solid var(--viewer-border);box-shadow:var(--viewer-shadow);border-radius:12px;padding:24px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.viewer-error button{margin-top:16px}.viewer-error a{color:var(--color-text-secondary);margin-top:16px;font-size:12px;display:block}.hdr-status{border:1px solid var(--color-fill);color:var(--color-text-secondary);background:var(--color-material-ultra-thick);backdrop-filter:blur(var(--viewer-blur-control));pointer-events:none;border-radius:999px;padding:4px 8px;font-size:10px;position:absolute;bottom:16px;left:16px}@media (prefers-reduced-motion:reduce){.photo-dialog *,.photo-dialog :before,.photo-dialog :after{scroll-behavior:auto!important;transition-duration:0s!important;animation:none!important}}
