:root{--bg-color: #f8f9fa;--text-primary: #023047;--text-secondary: rgba(2, 48, 71, .4);--accent: #e65100;--accent-soft: rgba(230, 81, 0, .1);--card-bg: #ffffff;--shadow-soft: 0 10px 40px rgba(0, 0, 0, .04);--shadow-hover: 0 30px 60px rgba(2, 48, 71, .08);--ease: cubic-bezier(.16, 1, .3, 1);--transition-slow: .8s var(--ease);--transition-fast: .4s var(--ease)}body{margin:0;overflow:hidden;background-color:var(--bg-color);font-family:Instrument Sans,sans-serif;width:100vw;height:100vh;color:var(--text-primary)}::selection{background:var(--accent);color:#fff}img{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;pointer-events:none}canvas{display:block;touch-action:none}.loading-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#f8f9facc;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:5000;transition:opacity .6s var(--ease),visibility .6s}.loading-overlay.hidden{opacity:0;visibility:hidden;pointer-events:none}.loader-content{display:flex;flex-direction:column;align-items:center;gap:20px}@keyframes spin{to{transform:rotate(360deg)}}#gallery-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--bg-color);z-index:2000;display:flex;flex-direction:column;align-items:center;padding:clamp(60px,8vh,120px) 20px;box-sizing:border-box;overflow-y:auto;overflow-x:hidden;transition:opacity 1s var(--ease),visibility 1s}#gallery-overlay.hidden{opacity:0;visibility:hidden;pointer-events:none}.brand-mark{position:fixed;top:40px;left:50px;z-index:2005;transition:opacity .8s var(--ease)}.brand-mark .alias-wrapper{padding:8px 0}.brand-mark .alias{font-family:Shantell Sans,cursive;font-size:24px;font-weight:500;letter-spacing:-.045em;color:var(--accent)}.brand-mark.hidden{opacity:0;pointer-events:none}.draw-circle .circle-path{stroke-dashoffset:0}.alias{font-family:Shantell Sans,cursive;color:var(--accent);font-size:clamp(26px,3vw,34px);font-weight:500;letter-spacing:-.045em;display:inline-block;transition:transform var(--transition-slow)}.social-links{position:fixed;top:40px;right:50px;display:flex;gap:24px;z-index:2001;transition:opacity .8s ease}.social-link{color:var(--text-secondary);display:flex;align-items:center;justify-content:center;transition:color var(--transition-fast),transform var(--transition-fast)}.social-link:hover{color:var(--accent);transform:translateY(-4px)}.gallery-grid{width:100%;border-bottom:1px solid rgba(2,48,71,.12)}.gallery-card{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr) 20px;align-items:center;gap:12px;min-height:73px;border-top:1px solid rgba(2,48,71,.12);color:inherit;text-decoration:none;cursor:pointer;opacity:0;transform:translateY(18px);transition:color var(--transition-fast),padding var(--transition-fast)}.gallery-card:before{position:absolute;inset:-1px auto auto 0;width:0;height:1px;background:var(--scene-accent, var(--accent));content:"";transition:width .65s var(--ease)}.gallery-card:hover:before,.gallery-card:focus-visible:before,.gallery-card.is-preview-active:before{width:100%}.gallery-card:focus-visible{outline:none}.gallery-card:hover .card-index,.gallery-card:focus-visible .card-index,.gallery-card.is-preview-active .card-index{color:var(--scene-accent, var(--accent))}.gallery-card:hover .card-title,.gallery-card:focus-visible .card-title,.gallery-card.is-preview-active .card-title{color:color-mix(in srgb,var(--scene-accent, var(--accent)) 72%,var(--text-primary));transform:translate(5px)}.gallery-card:hover .card-open,.gallery-card:focus-visible .card-open,.gallery-card.is-preview-active .card-open{opacity:1;transform:translate(0)}.char{display:inline-block;will-change:transform,opacity}.back-to-gallery{position:fixed;top:50px;left:50px;z-index:1000;transition:opacity .8s ease}.minimal-btn{background:var(--card-bg);border:none;color:var(--text-primary);border-radius:50%;width:50px;height:50px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-soft);transition:all var(--transition-fast)}.minimal-btn:hover{color:var(--accent);transform:scale(1.1);box-shadow:var(--shadow-hover)}@media(max-width:1000px){.gallery-layout{grid-template-columns:minmax(320px,.9fr) minmax(340px,1.1fr);gap:54px;width:min(900px,calc(100vw - 64px))}.gallery-card{min-height:68px}}@media(max-width:800px){#gallery-overlay{padding:96px 20px 48px}.gallery-header{margin-bottom:42px}.gallery-layout{display:flex;flex-direction:column;gap:34px;width:min(560px,100%);padding-bottom:54px}.gallery-preview{position:relative;top:auto;order:-1;z-index:2;border-radius:4px;padding:8px;background:var(--bg-color);box-shadow:0 18px 45px #02142314}.gallery-preview-stage{aspect-ratio:2 / 1}.gallery-preview-caption{grid-template-columns:54px 1fr;margin-top:8px;padding:9px 2px 2px}.gallery-preview-hint,.gallery-preview-detail{display:none}.gallery-index-heading{padding-bottom:12px}.gallery-card{min-height:66px}.brand-mark{position:absolute;top:24px;left:20px}.brand-mark .alias{font-size:18px}.social-links{position:relative;top:auto;right:auto;justify-content:center;gap:28px;margin-top:8px;padding-bottom:20px}}.loader-content{width:min(300px,calc(100vw - 64px));gap:14px}.loader-mark{display:flex;align-items:center;gap:5px;height:34px;margin-bottom:8px}.loader-mark span{width:9px;height:22px;border-radius:999px;background:var(--loader-accent, var(--accent));animation:loader-wave .9s var(--ease) infinite alternate}.loader-mark span:nth-child(2){height:32px;animation-delay:-.3s}.loader-mark span:nth-child(3){animation-delay:-.6s}.loader-title{color:var(--text-primary);font-family:Instrument Sans,sans-serif;font-size:22px;font-weight:480;letter-spacing:-.02em}.loader-status{color:var(--text-secondary);font-size:9px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.loader-progress{width:100%;height:1px;overflow:hidden;background:#0230471a;transform:translateZ(0)}.loader-progress span{display:block;width:100%;height:100%;background:var(--loader-accent, var(--accent));transform:scaleX(.08);transform-origin:left center;transition:transform .3s var(--ease)}.loader-retry{margin-top:8px;border:1px solid rgba(2,48,71,.18);border-radius:999px;padding:10px 18px;background:transparent;color:var(--text-primary);font:inherit;font-size:10px;font-weight:620;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}.loader-retry.hidden{display:none}@keyframes loader-wave{0%{transform:scaleY(.62);opacity:.45}to{transform:scaleY(1);opacity:1}}.scene-info{--scene-accent: var(--accent);position:fixed;left:50px;bottom:42px;z-index:1400;width:min(392px,calc(100vw - 100px));color:var(--text-primary)}.scene-info.hidden,.back-to-gallery.hidden,.scene-navigation.hidden{display:none}.scene-info-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:44px;border:1px solid rgba(255,255,255,.58);border-radius:999px;padding:12px 18px;background:#ffffffdb;box-shadow:0 14px 45px #0214231f;color:var(--text-primary);font:inherit;font-size:9px;font-weight:650;letter-spacing:.13em;text-transform:uppercase;cursor:pointer;-webkit-backdrop-filter:blur(22px) saturate(140%);backdrop-filter:blur(22px) saturate(140%)}.scene-info-toggle svg{transition:transform var(--transition-fast)}.scene-info-toggle:focus-visible,.scene-info-actions button:focus-visible,.scene-navigation button:focus-visible{outline:2px solid color-mix(in srgb,var(--scene-accent) 58%,white);outline-offset:2px}.scene-info.is-open .scene-info-toggle svg{transform:rotate(45deg)}.scene-info-content{position:relative;margin-top:8px;overflow:hidden;border:1px solid rgba(255,255,255,.66);border-radius:22px;padding:0 24px;max-height:0;background:linear-gradient(145deg,#fffffff7,#f9fafbe8);box-shadow:0 24px 70px #02142329;opacity:0;transform:translateY(10px);-webkit-backdrop-filter:blur(28px) saturate(130%);backdrop-filter:blur(28px) saturate(130%);transition:max-height .65s var(--ease),padding .65s var(--ease),opacity .35s ease,transform .65s var(--ease)}.scene-info.is-open .scene-info-content{max-height:min(700px,calc(100vh - 160px));overflow-y:auto;padding:24px 24px 20px;opacity:1;transform:translateY(0);scrollbar-width:thin;scrollbar-color:rgba(2,48,71,.2) transparent}.scene-info-content:before{position:absolute;top:0;right:24px;left:24px;height:2px;border-radius:0 0 999px 999px;background:linear-gradient(90deg,transparent,var(--scene-accent),transparent);content:"";opacity:.75}.scene-info-eyebrow{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px}.scene-info-index,.scene-info-category{font-size:9px;font-weight:650;letter-spacing:.14em;text-transform:uppercase}.scene-info-index{color:var(--scene-accent);font-variant-numeric:tabular-nums}.scene-info-category{overflow:hidden;margin:0;color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap}.scene-info-title{margin:0 0 10px;font-family:Instrument Sans,sans-serif;font-size:clamp(27px,2.4vw,32px);font-weight:520;letter-spacing:-.045em;line-height:1.06;text-wrap:balance}.scene-info-description{margin:0;color:#023047ab;font-size:12.5px;line-height:1.62}.scene-info-interaction-card{display:flex;align-items:flex-start;gap:11px;margin-top:17px;border:1px solid color-mix(in srgb,var(--scene-accent) 20%,transparent);border-radius:13px;padding:11px 12px;background:color-mix(in srgb,var(--scene-accent) 7%,white);color:var(--scene-accent)}.scene-info-interaction-card svg{flex:0 0 auto;margin-top:1px}.scene-info-interaction-card span{display:block;margin-bottom:4px;color:var(--text-secondary);font-size:8px;font-weight:680;letter-spacing:.13em;text-transform:uppercase}.scene-info-interaction{margin:0;color:var(--text-primary);font-size:10px;font-weight:650;letter-spacing:.035em;line-height:1.4}.scene-info-technical{margin-top:16px;border-top:1px solid rgba(2,48,71,.09);border-bottom:1px solid rgba(2,48,71,.09)}.scene-info-technical summary{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:9px;padding:14px 1px;color:var(--text-primary);font-size:9px;font-weight:680;letter-spacing:.12em;list-style:none;text-transform:uppercase;cursor:pointer}.scene-info-technical summary::-webkit-details-marker{display:none}.scene-info-technique-count{color:var(--text-secondary);font-size:8px;font-weight:600;letter-spacing:.08em}.scene-info-technical summary svg{color:var(--scene-accent);transition:transform var(--transition-fast)}.scene-info-technical[open] summary svg{transform:rotate(180deg)}.scene-info-technical-body{padding:0 1px 16px}.scene-info-method{margin:0;color:#023047ad;font-size:11.5px;line-height:1.68}.scene-info-techniques{display:flex;flex-wrap:wrap;gap:6px;margin-top:13px}.scene-info-techniques span{border:1px solid color-mix(in srgb,var(--scene-accent) 30%,transparent);border-radius:999px;padding:6px 9px;background:color-mix(in srgb,var(--scene-accent) 7%,transparent);color:var(--text-primary);font-size:8px;font-weight:600;letter-spacing:.045em;line-height:1}.scene-info-actions{display:flex;gap:7px;margin-top:14px}.scene-info-actions[hidden]{display:none}.scene-info-actions button{flex:1;border:1px solid color-mix(in srgb,var(--scene-accent) 24%,transparent);border-radius:999px;padding:9px 11px;background:color-mix(in srgb,var(--scene-accent) 7%,white);color:var(--text-primary);font:inherit;font-size:8px;font-weight:650;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.scene-navigation{--scene-accent: var(--accent);position:fixed;bottom:26px;left:50%;z-index:1390;display:flex;align-items:center;gap:3px;border:1px solid rgba(255,255,255,.62);border-radius:999px;padding:4px;background:#ffffffd6;box-shadow:0 14px 45px #02142321;transform:translate(-50%);-webkit-backdrop-filter:blur(22px) saturate(140%);backdrop-filter:blur(22px) saturate(140%)}.scene-navigation button{display:flex;align-items:center;justify-content:center;gap:8px;min-width:118px;border:0;border-radius:999px;padding:10px 14px;background:transparent;color:var(--text-primary);font:inherit;font-size:8px;font-weight:620;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),transform var(--transition-fast)}.scene-navigation-divider{width:1px;height:20px;background:#0230471a}.scene-navigation button:hover,.scene-navigation button:focus-visible{background:color-mix(in srgb,var(--scene-accent) 10%,white);color:var(--scene-accent);transform:translateY(-1px)}.noscript-message{position:fixed;inset:auto 20px 20px;z-index:10000;margin:0;padding:16px;border-radius:12px;background:#fff;color:var(--text-primary);text-align:center}@media(max-width:700px){.gallery-intro{max-width:290px;margin-top:12px;font-size:12px}.gallery-header{margin-bottom:52px}.card-title{font-size:19px}.card-open{display:none}.scene-info{left:14px;bottom:14px;width:calc(100vw - 28px)}.scene-info.is-open .scene-info-content{max-height:calc(100dvh - 126px);padding:21px 20px 18px}.scene-info-title{font-size:27px}.scene-info-technical:not([open]){border-bottom-color:#0230470f}.scene-info-toggle{min-height:42px}.scene-navigation{bottom:68px;width:min(290px,calc(100vw - 40px))}.scene-navigation button{flex:1;min-width:0;padding:9px 10px}.back-to-gallery{top:20px;left:20px}}@media(prefers-reduced-motion:reduce){.loader-mark span{animation:none}.scene-info-content,.scene-info-toggle svg,.card-open{transition-duration:.01ms}}#gallery-overlay{--scene-accent: var(--accent);display:block;overflow:hidden;padding:0;background:radial-gradient(circle at 50% 46%,rgba(255,255,255,.94),transparent 48%),#f2f3f3;cursor:none}#gallery-overlay:after{position:fixed;right:0;bottom:0;left:0;z-index:2000;height:175px;background:linear-gradient(180deg,transparent,rgba(242,243,243,.9) 76%,#f2f3f3);content:"";pointer-events:none}#gallery-overlay .gallery-header{position:fixed;top:42px;left:50%;z-index:2010;margin:0;transform:translate(-50%);pointer-events:none}#gallery-overlay .gallery-title{margin:0;color:#02304775;font-family:DM Mono,monospace;font-size:8px;font-weight:400;letter-spacing:.28em}#gallery-overlay .gallery-intro{display:none}.gallery-canvas{--scene-accent: var(--accent);position:absolute;inset:0;z-index:1;overflow:hidden;outline:none;cursor:none;touch-action:none;transition:opacity .7s var(--ease),filter .7s var(--ease),transform .7s var(--ease)}.gallery-canvas canvas{position:absolute;inset:0;width:100%;height:100%}.gallery-canvas:after{position:absolute;inset:0;border:1px solid transparent;content:"";pointer-events:none;transition:border-color var(--transition-fast)}.gallery-canvas:focus-visible:after{border-color:color-mix(in srgb,var(--scene-accent) 45%,transparent)}.gallery-canvas.is-dragging canvas{cursor:grabbing}.gallery-canvas.is-opening{opacity:.22;filter:blur(8px);transform:scale(1.025)}.gallery-ambient{position:absolute;top:50%;left:50%;width:min(66vw,900px);aspect-ratio:1;border-radius:50%;background:color-mix(in srgb,var(--scene-accent) 12%,transparent);filter:blur(115px);opacity:.34;transform:translate(-50%,-50%);pointer-events:none;transition:background 1.1s var(--ease)}#gallery-overlay:hover .gallery-cursor{opacity:1}#gallery-overlay .gallery-grid{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important}#gallery-overlay .gallery-card{min-height:0;border:0;opacity:1;transform:none}@media(max-width:700px){#gallery-overlay .gallery-header{top:27px}#gallery-overlay .brand-mark{position:fixed;top:22px}.gallery-instruction{top:58px;right:20px;bottom:auto}.gallery-instruction>span:last-child{display:none}.gallery-cursor{display:none}}@media(hover:none),(pointer:coarse){#gallery-overlay,.gallery-canvas{cursor:auto}.gallery-cursor{display:none}}@media(prefers-reduced-motion:reduce){.gallery-canvas,.gallery-cursor,.gallery-ambient{transition-duration:.01ms}}:root{--gallery-paper: #efede7;--gallery-paper-deep: #e8e5dd;--gallery-ink: #17272f;--gallery-muted: rgba(23, 39, 47, .48);--gallery-hairline: rgba(23, 39, 47, .07);--gallery-coral: #d85d38}.intro-overlay{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;width:100%;height:100%;overflow:hidden;background:radial-gradient(120% 100% at 22% 18%,#fff6e9f2,#fff6e900 62%),linear-gradient(152deg,#f3f1ea,#efede7 46%,#e6e5e1)!important;color:var(--gallery-ink);opacity:1}.intro-grain{position:absolute;inset:0;z-index:1;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");pointer-events:none}.intro-stage{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:32px;box-sizing:border-box}.intro-eyebrow{position:absolute;top:50%;left:50%;margin:0;display:inline-flex;align-items:baseline;white-space:pre;color:var(--gallery-muted);font-family:DM Mono,monospace;font-size:clamp(10px,.85vw,11.5px);font-weight:400;letter-spacing:.16em;text-transform:lowercase;pointer-events:none}.intro-eyebrow-name,.intro-eyebrow-year{color:inherit}.intro-eyebrow-sep{color:var(--gallery-coral)}.intro-caret{display:inline-block;width:1.5px;height:1em;margin-left:.35em;background:var(--gallery-coral);transform:translateY(.1em)}.intro-word{position:absolute;top:50%;left:50%;width:min(72vw,620px);pointer-events:none}.intro-word-svg{display:block;width:100%;height:auto;overflow:visible}.hand-stroke{fill:none;stroke:var(--gallery-coral);stroke-width:2.6px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.intro-rule{fill:none;stroke:var(--gallery-coral);stroke-width:1.6px;stroke-linecap:round;opacity:.5;vector-effect:non-scaling-stroke}.intro-skip{position:absolute;right:clamp(20px,4vw,36px);bottom:clamp(20px,4vh,32px);z-index:3;padding:6px 2px;border:0;background:none;color:var(--gallery-muted);font:400 10.5px/1 DM Mono,monospace;letter-spacing:.22em;text-transform:lowercase;cursor:pointer;opacity:0;transition:color .3s ease}.intro-skip:hover,.intro-skip:focus-visible{color:var(--gallery-ink);outline:none}.intro-skip:focus-visible{text-decoration:underline;text-underline-offset:4px}#gallery-overlay{--scene-accent: var(--gallery-coral);position:fixed;inset:0;display:block;overflow:hidden;padding:0;background:var(--gallery-paper);color:var(--gallery-ink);cursor:default;isolation:isolate}#gallery-overlay.hidden{display:none}#gallery-overlay:before,#gallery-overlay:after{display:none}.gallery-grid-backdrop{position:absolute;inset:0;z-index:0;background-image:linear-gradient(rgba(23,39,47,.027) 1px,transparent 1px),linear-gradient(90deg,rgba(23,39,47,.027) 1px,transparent 1px);background-position:center;background-size:52px 52px;-webkit-mask-image:radial-gradient(ellipse at center,black 12%,transparent 82%);mask-image:radial-gradient(ellipse at center,black 12%,transparent 82%);pointer-events:none}#gallery-overlay .brand-mark{position:fixed;top:24px;left:32px;z-index:55;display:flex;align-items:center;opacity:1;pointer-events:auto}#gallery-overlay .brand-mark .alias-wrapper{padding:0}#gallery-overlay .brand-mark .alias{display:block;color:var(--gallery-ink);font:600 17px/1 Instrument Sans,sans-serif;letter-spacing:-.045em;transform:none}.gallery-view-switch{position:fixed;top:24px;left:50%;z-index:55;display:inline-flex;align-items:center;padding:3px;border:1px solid var(--gallery-hairline);border-radius:999px;background:#f6f4ef8c;backdrop-filter:blur(22px) saturate(180%);-webkit-backdrop-filter:blur(22px) saturate(180%);box-shadow:0 1px 1px #ffffffb3 inset,0 -1px 1px #17272f0a inset,0 6px 22px #17272f12,0 1px 3px #17272f0a;transform:translate(-50%);-webkit-user-select:none;user-select:none}.gallery-view-switch .view-btn,.gallery-view-switch button{position:relative;z-index:2;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;padding:6px 18px;background:transparent;color:var(--gallery-muted);font:530 12px/1 Instrument Sans,sans-serif;letter-spacing:.03em;cursor:pointer;outline:none;transition:color .25s ease,background-color .25s ease,transform .25s cubic-bezier(.22,1,.36,1),box-shadow .25s ease}.gallery-view-switch button:hover{color:var(--gallery-ink)}.gallery-view-switch button[aria-pressed=true],.gallery-view-switch button.is-active{background:#fff;color:var(--gallery-ink);font-weight:600;box-shadow:0 2px 10px #17272f14}.gallery-view-switch button[aria-disabled=true]{cursor:wait;pointer-events:none;opacity:.5}.gallery-view-switch>span{display:none}.social-links{position:fixed;top:24px;right:32px;z-index:55;display:flex;align-items:center;gap:5px;padding:4px 6px;border:1px solid var(--gallery-hairline);border-radius:999px;background:#f6f4ef8c;backdrop-filter:blur(22px) saturate(180%);-webkit-backdrop-filter:blur(22px) saturate(180%);box-shadow:0 1px 1px #ffffffb3 inset,0 -1px 1px #17272f0a inset,0 6px 22px #17272f12,0 1px 3px #17272f0a;transition:opacity .4s ease}.social-link{position:relative;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;color:var(--gallery-ink);opacity:.65;transition:opacity .2s ease,transform .25s cubic-bezier(.22,1,.36,1),background-color .2s ease,color .2s ease,box-shadow .2s ease;text-decoration:none}.social-link svg{width:13px;height:13px;transition:transform .25s cubic-bezier(.22,1,.36,1)}.social-link:after{content:attr(data-label);position:absolute;top:calc(100% + 7px);left:50%;color:var(--gallery-muted);font:400 8.5px/1 DM Mono,monospace;letter-spacing:.14em;text-transform:lowercase;white-space:nowrap;opacity:0;transform:translate(-50%,-3px);transition:opacity .22s ease,transform .28s cubic-bezier(.22,1,.36,1);pointer-events:none}.social-link:hover,.social-link:focus-visible{opacity:1;color:var(--gallery-coral);background:#ffffffe6;transform:translateY(-2px);box-shadow:0 2px 8px #17272f14;outline:none}.social-link:hover svg,.social-link:focus-visible svg{transform:scale(1.08)}.social-link:hover:after,.social-link:focus-visible:after{opacity:1;transform:translate(-50%)}.social-links:hover .social-link:not(:hover){opacity:.36}@media(hover:none){.social-link:after{display:none}.social-links:hover .social-link:not(:hover){opacity:.65}}.social-links.hidden{opacity:0;pointer-events:none}.gallery-portfolio{position:fixed;bottom:28px;right:32px;z-index:55;display:flex;align-items:center;gap:8px;min-width:98px;height:38px;border:1px solid var(--gallery-hairline);border-radius:999px;padding:0 16px 1px 18px;overflow:hidden;background:#f6f4ef8c;color:var(--gallery-ink);font:530 11.5px/1 Instrument Sans,sans-serif;letter-spacing:-.015em;cursor:pointer;-webkit-backdrop-filter:blur(22px) saturate(180%);backdrop-filter:blur(22px) saturate(180%);box-shadow:0 1px 1px #ffffffb3 inset,0 -1px 1px #17272f0a inset,0 6px 22px #17272f12,0 1px 3px #17272f0a;transition:border-color .3s ease,color .3s ease,transform .35s cubic-bezier(.22,1,.36,1),background-color .3s ease,box-shadow .3s ease}.gallery-portfolio:hover,.gallery-portfolio:focus-visible{border-color:#d85d3861;color:var(--gallery-coral);background:#fff;outline:none;transform:translateY(-2px);box-shadow:0 4px 14px #d85d381f}.gallery-canvas{position:absolute;inset:0;z-index:2;overflow:hidden;outline:none;cursor:grab;touch-action:none;transition:opacity .5s ease,filter .5s ease,transform .6s cubic-bezier(.22,1,.36,1)}.gallery-canvas.has-hover{cursor:pointer}.gallery-canvas.is-dragging{cursor:grabbing}.gallery-canvas.is-opening{opacity:.08;filter:blur(8px);transform:scale(1.02)}.gallery-canvas canvas{position:absolute;inset:0;z-index:1;display:block;width:100%;height:100%}.gallery-canvas:after{position:absolute;inset:7px;z-index:3;border:1px solid transparent;border-radius:10px;content:"";pointer-events:none;transition:border-color .25s ease}.gallery-canvas:focus-visible:after{border-color:#d85d3852}.gallery-ambient{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}.gallery-ambient:before,.gallery-ambient:after{content:"";position:absolute;top:50%;left:50%;aspect-ratio:1;border-radius:50%;translate:-50% -50%;filter:blur(100px);transition:background-color 1.4s ease;will-change:transform}.gallery-ambient:before{width:min(54vw,720px);background:color-mix(in srgb,var(--scene-accent, #d85d38) 15%,transparent);animation:ambientDriftA 26s ease-in-out infinite alternate}.gallery-ambient:after{width:min(40vw,540px);background:color-mix(in srgb,var(--scene-accent, #d85d38) 8%,transparent);animation:ambientDriftB 34s ease-in-out infinite alternate}@keyframes ambientDriftA{0%{transform:translate(-7%,-5%) scale(1)}to{transform:translate(8%,6%) scale(1.12)}}@keyframes ambientDriftB{0%{transform:translate(9%,7%) scale(1.06)}to{transform:translate(-8%,-6%) scale(.92)}}@media(prefers-reduced-motion:reduce){.gallery-ambient:before,.gallery-ambient:after{animation:none}}.gallery-keyboard-status{position:fixed;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.gallery-list-view{position:absolute;inset:0;z-index:12;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;padding:98px 0 72px;opacity:0;pointer-events:none;scrollbar-width:none;transform:translateY(0);transition:opacity .34s ease,transform .5s cubic-bezier(.22,1,.36,1)}.gallery-list-view::-webkit-scrollbar{display:none}#gallery-overlay[data-view=list] .gallery-list-view{opacity:1;pointer-events:auto}#gallery-overlay:has(.gallery-canvas.is-mode-transitioning) .gallery-list-view{transform:none;transition:opacity .22s linear}#gallery-overlay:has(.gallery-canvas.is-mode-transitioning) .gallery-list-item{opacity:1;transform:none;transition:none;transition-delay:0ms}.gallery-list-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:50px 18px;width:min(calc(100vw - 64px),1360px);margin:0 auto}.gallery-list-item{position:relative;display:block;box-sizing:border-box;color:var(--gallery-ink);text-decoration:none;opacity:0;transform:translate(6px,10px);transition:opacity .34s ease,transform .52s cubic-bezier(.22,1,.36,1),filter .45s ease}#gallery-overlay[data-view=list] .gallery-list-item{opacity:1;transform:translate(0);transition-delay:var(--sweep-delay, 0ms)}.gallery-list-media{position:relative;display:block;aspect-ratio:3 / 2;overflow:hidden;border:1px solid rgba(23,39,47,.075);border-radius:13px;background:var(--gallery-paper-deep);transform:translateZ(0);transition:box-shadow .45s ease,transform .6s cubic-bezier(.22,1,.36,1)}#gallery-overlay.has-webgl-grid .gallery-list-media{background:transparent;border-color:transparent}#gallery-overlay.has-webgl-grid .gallery-list-media img{opacity:0}#gallery-overlay.has-webgl-grid .gallery-list-item,#gallery-overlay.has-webgl-grid[data-view=list] .gallery-list-item{transform:none}#gallery-overlay.has-webgl-grid[data-view=list] .gallery-list-item{transition:opacity .26s ease;transition-delay:0ms}.gallery-list-media:after{position:absolute;inset:0;background:linear-gradient(180deg,transparent 54%,rgba(11,20,24,.18));content:"";opacity:0;transition:opacity .4s ease}.gallery-list-media img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.9) contrast(.98);transform:scale(1.008);transition:filter .55s ease,transform .85s cubic-bezier(.16,1,.3,1)}.gallery-list-view-label{position:absolute;right:12px;bottom:12px;z-index:2;display:flex;align-items:center;gap:9px;border-radius:999px;padding:8px 11px 8px 12px;background:#f6f4efb8;backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);box-shadow:0 1px 1px #fff9 inset,0 4px 14px #17272f14;color:var(--gallery-ink);font:520 10px/1 Instrument Sans,sans-serif;letter-spacing:-.01em;opacity:0;transform:translateY(8px);transition:opacity .35s ease,transform .48s cubic-bezier(.22,1,.36,1)}.gallery-list-view-label i{color:var(--scene-accent);font-style:normal;transition:transform .4s cubic-bezier(.22,1,.36,1)}.gallery-list-caption{display:grid;align-items:center;min-height:1.35em;margin-top:13px}.gallery-list-title{grid-area:1 / 1;min-width:0;overflow:hidden;color:var(--gallery-ink);font:510 clamp(14px,1.18vw,17px)/1.3 "Instrument Sans",sans-serif;letter-spacing:-.03em;text-overflow:ellipsis;white-space:nowrap;opacity:0;transform:translateY(5px);transition:opacity .3s ease,transform .45s cubic-bezier(.22,1,.36,1)}.gallery-list-item:hover .gallery-list-title,.gallery-list-item:focus-visible .gallery-list-title{opacity:1;transform:translateY(0)}.gallery-list-items:has(.gallery-list-item:hover) .gallery-list-item,.gallery-list-items:has(.gallery-list-item:focus-visible) .gallery-list-item{opacity:.52;transition-delay:0ms}.gallery-list-items:has(.gallery-list-item:hover) .gallery-list-item:hover,.gallery-list-items:has(.gallery-list-item:focus-visible) .gallery-list-item:focus-visible{opacity:1;filter:none;outline:none;transform:translateY(-5px)}.gallery-list-item:hover .gallery-list-media,.gallery-list-item:focus-visible .gallery-list-media{box-shadow:0 0 0 1px color-mix(in srgb,var(--scene-accent) 30%,transparent),0 18px 40px #17272f1c}.gallery-list-item:hover .gallery-list-media:after,.gallery-list-item:focus-visible .gallery-list-media:after{opacity:1}.gallery-list-item:hover .gallery-list-media img,.gallery-list-item:focus-visible .gallery-list-media img{filter:saturate(1.05) contrast(1.01);transform:scale(1.038)}.gallery-list-item:hover .gallery-list-view-label,.gallery-list-item:focus-visible .gallery-list-view-label{opacity:1;transform:translateY(0)}.gallery-list-item:hover .gallery-list-view-label i,.gallery-list-item:focus-visible .gallery-list-view-label i{transform:translate(2px,-2px)}#gallery-overlay[data-view=list] .gallery-canvas{z-index:2;cursor:default;pointer-events:none}#gallery-overlay .gallery-grid{position:fixed;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}@media(min-width:1500px){.gallery-list-items{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:721px)and (max-width:959px){.gallery-list-items{grid-template-columns:repeat(2,minmax(0,1fr));gap:42px 14px;width:calc(100vw - 48px)}.gallery-list-title{font-size:clamp(15px,2.2vw,19px)}}@media(max-width:720px){.intro-stage{padding:20px}.intro-eyebrow{letter-spacing:.18em}.intro-word{width:min(88vw,620px)}#gallery-overlay .brand-mark{top:18px;left:16px}#gallery-overlay .brand-mark .alias{font-size:15px}.gallery-view-switch{top:18px;padding:2px}.gallery-view-switch .view-btn,.gallery-view-switch button{padding:5px 12px;font-size:11px}.social-links{inset:auto auto 20px 16px;padding:3px 5px;gap:2px}.social-link{width:32px;height:32px}.social-link svg{width:14px;height:14px}.gallery-portfolio{bottom:20px;right:20px;height:34px;padding:0 13px;font-size:10.5px}.gallery-list-view{overflow-y:auto;padding:76px 0 52px}.gallery-list-items{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 10px;width:calc(100vw - 28px);margin:0 14px}.gallery-list-item{transform:translateY(16px)}.gallery-list-media{border-radius:9px}.gallery-list-caption{grid-template-columns:18px minmax(0,1fr);align-items:start;gap:6px;margin-top:9px}.gallery-list-title{display:-webkit-box;height:2.16em;overflow:hidden;font-size:clamp(12px,3.65vw,15px);line-height:1.08;letter-spacing:-.025em;white-space:normal;opacity:1;transform:none;-webkit-box-orient:vertical;-webkit-line-clamp:2}.gallery-list-view-label{display:none}.gallery-list-caption{display:flex;align-items:baseline;gap:7px;margin-top:9px}.gallery-list-items:has(.gallery-list-item:hover) .gallery-list-item,.gallery-list-items:has(.gallery-list-item:focus-visible) .gallery-list-item{opacity:1;filter:none}}@media(prefers-reduced-motion:reduce){.gallery-list-item,.gallery-list-media,.gallery-list-media img,.gallery-list-view-label,.gallery-list-title,.gallery-canvas,.gallery-view-switch button,.gallery-portfolio{transition-duration:.01ms!important}}.scene-veil{position:fixed;inset:0;z-index:4000;background:var(--gallery-paper);opacity:0;pointer-events:none;visibility:hidden}
