/* One header, from the full-width masthead to a glass cartridge on the left. */
.header-space{height:100px}
.site-header.has-dock{position:fixed;top:0;left:max(0px,calc((100vw - var(--max) - 80px)/2));width:min(100%,calc(var(--max) + 80px));max-width:none;margin:0;z-index:70;overflow:hidden;border:1px solid transparent;transition:width .65s cubic-bezier(.22,1,.36,1),height .65s cubic-bezier(.22,1,.36,1),left .65s cubic-bezier(.22,1,.36,1),top .8s cubic-bezier(.22,1,.36,1),padding .65s,border-radius .65s,background .45s,box-shadow .65s}
.site-header.has-dock .brand,.site-header.has-dock>nav{flex-shrink:0;transition:opacity .18s,transform .45s,visibility .18s}
.site-header.has-dock>nav{gap:24px}
.menu-toggle{flex-shrink:0;display:flex;align-items:center;justify-content:center;gap:10px;height:44px;padding:0 12px;color:var(--cyan);background:#75eaf308;border:1px solid #75eaf34a;border-radius:6px;font:13px var(--mono);letter-spacing:1.2px;cursor:pointer}
.menu-toggle:hover{background:#75eaf319;box-shadow:0 0 20px #75eaf318}
.menu-glyph{display:grid;gap:4px;width:16px}.menu-glyph i{display:block;width:16px;height:1px;background:currentColor;transition:transform .25s}
.menu-toggle[aria-expanded=true] .menu-glyph i:first-child{transform:translateY(2.5px) rotate(45deg)}
.menu-toggle[aria-expanded=true] .menu-glyph i:last-child{transform:translateY(-2.5px) rotate(-45deg)}
.dock-mark{display:none;font:900 27px/1 var(--mono);letter-spacing:-4px;color:var(--text)}.dock-mark b{color:var(--cyan)}
.site-header.has-dock.is-docked{top:calc(50svh - 38px);left:20px;width:76px;height:76px;padding:0;border-radius:14px;border-color:#75eaf369;background:linear-gradient(135deg,#bfd5ff22,#10132cb8 42%,#ee61c615);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);box-shadow:0 12px 40px #0007,0 0 24px #75eaf318,inset 0 1px 0 #ffffff3b}
.site-header.is-docked::after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 3px,#75eaf309 3px 4px)}
.site-header.is-docked .brand,.site-header.is-docked>nav{opacity:0;visibility:hidden;pointer-events:none;transform:translateX(-35px)}
.site-header.is-docked .menu-toggle{position:absolute;inset:0;width:100%;height:100%;border:0;background:transparent;flex-direction:column;gap:7px;padding:8px}
.is-docked .dock-mark{display:block}.is-docked .menu-glyph{display:none}.is-docked .menu-label{font-size:13px;letter-spacing:1.2px}
.site-menu{position:fixed;left:110px;top:50svh;transform:translateY(-50%);width:320px;max-height:calc(100svh - 40px);overflow:auto;z-index:71;padding:22px;border:1px solid #75eaf354;border-radius:14px;background:linear-gradient(135deg,#222641e8,#0c1025ed);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 20px 70px #0008,inset 0 1px 0 #ffffff26}
.site-menu[hidden]{display:none}.site-menu:not([hidden]){animation:menu-materialize .3s cubic-bezier(.22,1,.36,1) both}
.menu-meta{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #75eaf330;padding-bottom:16px;margin-bottom:8px;font:13px var(--mono);letter-spacing:1.2px;color:var(--cyan)}
.menu-close,.dialog-close{border:1px solid #75eaf344;background:#75eaf309;color:var(--cyan);font:18px var(--mono);width:36px;height:36px;border-radius:5px;cursor:pointer}
.site-menu nav{display:flex;flex-direction:column;align-items:stretch;gap:0}.site-menu nav a{display:flex;align-items:center;justify-content:space-between;padding:14px 4px;border-bottom:1px solid #8391cb21;font:14px var(--mono);letter-spacing:1px;transition:color .2s,padding .2s}
.site-menu nav a:hover{padding-left:12px;color:var(--cyan)}.site-menu nav a[aria-current=page]{color:var(--cyan)}.site-menu nav a span{font:13px var(--mono);color:#939bb8}
.menu-footer{margin:18px 0 0;font:13px/1.7 var(--mono);letter-spacing:1.2px;color:var(--muted)}.menu-footer i{display:inline-block;width:5px;height:5px;margin-right:8px;background:var(--cyan);box-shadow:0 0 8px var(--cyan)}
@keyframes menu-materialize{from{opacity:0;translate:-16px 0;filter:blur(6px)}to{opacity:1;translate:0;filter:blur(0)}}
.contact-dialog{width:min(680px,calc(100% - 36px));max-height:calc(100svh - 40px);overflow:auto;margin:auto;padding:0;border:1px solid #75eaf369;border-radius:16px;color:var(--text);background:linear-gradient(135deg,#222641f2,#0c1025f5);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 0 80px #75eaf318,0 30px 100px #0009}
.contact-dialog::backdrop{background:#030409b8;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
body.custom-cursor .contact-dialog,body.custom-cursor .contact-dialog *{cursor:auto!important}body.custom-cursor .contact-dialog button,body.custom-cursor .contact-dialog a{cursor:pointer!important}
.contact-dialog.is-opening{animation:alt-crt-on .52s both}.contact-dialog.is-closing{animation:alt-crt-off .38s both;pointer-events:none}
.dialog-chrome{display:flex;align-items:center;justify-content:space-between;padding:14px 22px;border-bottom:1px solid #75eaf330;font:13px var(--mono);letter-spacing:1.2px;color:var(--cyan)}
.dialog-content{padding:34px}.dialog-content .eyebrow{font-size:13px;color:#ba8acb}.dialog-content h2{font-size:clamp(30px,5vw,44px);line-height:1.15;margin:18px 0}.dialog-content>p{color:#c0c5db;font-size:16px;line-height:1.8}.dialog-content .contact-row{margin-top:24px;gap:14px;flex-wrap:wrap}.dialog-content .contact-email{font-size:clamp(16px,3vw,21px)}.dialog-content .contact-list{margin-top:28px}.dialog-content .contact-list li{font-size:13px}.dialog-content .copy-note{min-height:16px;flex-basis:100%;font-size:13px;color:var(--cyan)}
.gallery-cta{display:inline-flex;align-items:center;gap:20px;padding:15px 20px;border:1px solid #75eaf369;background:linear-gradient(110deg,#75eaf314,#ee61c60b);border-radius:6px;font:13px var(--mono);letter-spacing:1.2px;color:var(--cyan);transition:background .2s,box-shadow .2s}.gallery-cta:hover{background:#75eaf322;box-shadow:0 0 24px #75eaf31a}.work-gallery-link{flex-basis:100%;margin:0}.about-page-link{display:inline-flex;margin-top:24px}
.footer-pages{display:flex;gap:18px;flex-wrap:wrap;font:13px var(--mono);letter-spacing:1px}.footer-pages a:hover{color:var(--cyan)}
@media(max-width:760px){.dialog-content .contact-list{grid-template-columns:1fr;gap:14px}.dialog-content .contact-list li{display:grid;grid-template-columns:85px minmax(0,1fr);gap:12px}.dialog-content .contact-list b{margin:0;line-height:1.8}}
@media(min-width:761px){.site-menu.is-at-top{top:110px;right:40px;left:auto;transform:none}}
@media(max-width:1000px){.site-header.has-dock>nav{gap:16px}.site-header.has-dock>nav .edition{display:none}}
@media(max-width:760px){.header-space{height:86px}.site-header.has-dock{height:86px;padding:0 24px}.site-header.has-dock>nav{gap:15px}.site-header.has-dock>nav .extra-link{display:none}.menu-toggle{padding:0 10px;gap:7px;font-size:13px}.site-header.has-dock.is-docked{top:16px;left:12px;width:60px;height:60px;border-radius:11px}.is-docked .dock-mark{font-size:23px}.site-menu,.site-menu.is-at-top{left:12px;right:auto;top:88px;transform:none;width:min(320px,calc(100% - 24px));max-height:calc(100svh - 104px)}.dialog-content{padding:24px}.dialog-content .contact-list li{grid-template-columns:1fr;gap:5px}.site-footer{flex-wrap:wrap}}
@media(max-width:420px){.site-header.has-dock{padding:0 18px}.site-header.has-dock .brand-name{display:none}.site-header.has-dock>nav{gap:12px}.menu-toggle{height:40px}.contact-dialog{width:calc(100% - 24px)}.dialog-content{padding:22px 18px}}
@media(prefers-reduced-motion:reduce){.site-header.has-dock,.site-header.has-dock .brand,.site-header.has-dock>nav,.menu-glyph i{transition:none}.site-menu:not([hidden]),.contact-dialog.is-opening,.contact-dialog.is-closing{animation:none}}
