.aurora-hover.svelte-1b8jtdu{--aurora-x:68%;--aurora-y:18%;--aurora-offset-x:0px;--aurora-offset-y:0px;--aurora-angle:112deg;--aurora-wash-opacity:.11;--aurora-ribbon-opacity:.06;--aurora-halo-opacity:.05;--aurora-blend:screen;z-index:0;contain:strict;isolation:isolate;pointer-events:none;position:fixed;inset:0;overflow:hidden}.aurora-hover.svelte-1b8jtdu:before,.aurora-hover.svelte-1b8jtdu:after,.aurora-hover__halo.svelte-1b8jtdu{content:"";pointer-events:none;will-change:opacity, transform, background-position;position:absolute}.aurora-hover.svelte-1b8jtdu:before{background:radial-gradient(circle at var(--aurora-x) var(--aurora-y), #18bde685, transparent 22rem), radial-gradient(circle at calc(var(--aurora-x) + 10%) calc(var(--aurora-y) + 10%), #b8ef3857, transparent 24rem), radial-gradient(circle at calc(var(--aurora-x) - 12%) calc(var(--aurora-y) - 6%), #7c5cff5c, transparent 21rem);filter:blur(28px)saturate(1.16);mix-blend-mode:var(--aurora-blend);opacity:var(--aurora-wash-opacity);transform:translate3d(var(--aurora-offset-x), var(--aurora-offset-y), 0);inset:-16%}.aurora-hover.svelte-1b8jtdu:after{background:linear-gradient(var(--aurora-angle), transparent 28%, #18bde652 42%, #b8ef3833 50%, transparent 64%), linear-gradient(calc(var(--aurora-angle) + 38deg), transparent 38%, #7c5cff42 49%, transparent 61%);-webkit-mask-image:radial-gradient(48rem 32rem at var(--aurora-x) var(--aurora-y), #000 0%, #000000d1 28%, transparent 70%);mask-image:radial-gradient(48rem 32rem at var(--aurora-x) var(--aurora-y), #000 0%, #000000d1 28%, transparent 70%);-webkit-mask-image:radial-gradient(48rem 32rem at var(--aurora-x) var(--aurora-y), #000 0%, #000000d1 28%, transparent 70%);filter:blur(22px)saturate(1.2);mix-blend-mode:var(--aurora-blend);opacity:var(--aurora-ribbon-opacity);transform:translate3d(var(--aurora-offset-x), var(--aurora-offset-y), 0);inset:-20%}.aurora-hover__halo.svelte-1b8jtdu{background:radial-gradient(24rem 15rem at var(--aurora-x) var(--aurora-y), #ffffff57, transparent 72%);filter:blur(8px);mix-blend-mode:soft-light;opacity:var(--aurora-halo-opacity);inset:0}:root[data-theme=light] .aurora-hover.svelte-1b8jtdu{--aurora-blend:multiply}@media (width<=680px){.aurora-hover.svelte-1b8jtdu:before{filter:blur(22px)saturate(1.12)}.aurora-hover.svelte-1b8jtdu:after{-webkit-mask-size:150% 150%;mask-size:150% 150%}}@media (prefers-reduced-motion:reduce){.aurora-hover.svelte-1b8jtdu{display:none}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#f2f0e9;--paper:#08090d;--paper-soft:#0e1017;--ink:#f2f0e9;--ink-soft:#d9d6cc;--muted:#9a9aa2;--line:#f2f0e924;--line-strong:#f2f0e947;--panel:#11131cc2;--panel-strong:#141720;--header:#08090dc2;--button:#f2f0e912;--button-hover:#f2f0e921;--vermillion:#ff6d56;--cyan:#67d9ed;--chartreuse:#c9ef71;--violet:#aa92ff;--gold:#edc878;--shadow:0 32px 100px #0000005c;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;background:#08090d;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#17171a;--paper:#f4f1e9;--paper-soft:#ebe7dc;--ink:#17171a;--ink-soft:#2d2d30;--muted:#65636a;--line:#17171a24;--line-strong:#17171a4d;--panel:#ffffffa3;--panel-strong:#fbfaf6;--header:#f4f1e9c7;--button:#ffffff80;--button-hover:#ffffffe6;--vermillion:#df4937;--cyan:#087f9d;--chartreuse:#7c9b22;--violet:#6951cf;--gold:#a87412;--shadow:0 32px 100px #1f1d181f;background:#f4f1e9}*{box-sizing:border-box}.app-shell{display:contents}html{scroll-behavior:smooth;scroll-padding-top:110px}body{background:radial-gradient(circle at 72% 10%, color-mix(in srgb, var(--violet) 15%, transparent), transparent 26rem), radial-gradient(circle at 12% 32%, color-mix(in srgb, var(--cyan) 9%, transparent), transparent 30rem), var(--paper);min-width:320px;color:var(--ink);margin:0;transition:background-color .3s,color .3s;overflow-x:hidden}body:before{content:"";z-index:0;pointer-events:none;opacity:.55;color:color-mix(in srgb, var(--ink) 14%, transparent);background-image:radial-gradient(circle,currentColor 0 .7px,#0000 .9px),radial-gradient(circle,currentColor 0 .5px,#0000 .7px);background-position:0 0,31px 47px;background-size:97px 97px,131px 131px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 72%);mask-image:linear-gradient(#000,#0000 72%)}::selection{background:var(--violet);color:#fff}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}.site-header{z-index:20;border:1px solid var(--line);background:var(--header);-webkit-backdrop-filter:blur(18px)saturate(1.25);backdrop-filter:blur(18px)saturate(1.25);border-radius:999px;grid-template-columns:1fr auto 1fr;align-items:center;gap:22px;width:min(1180px,100% - 48px);min-height:54px;margin:0 auto;padding:7px 8px 7px 18px;display:grid;position:fixed;inset:18px 24px auto;box-shadow:0 10px 36px #00000014}.wordmark{align-items:center;gap:12px;width:max-content;font-weight:760;display:flex}.wordmark>span:first-child{font-family:var(--serif);letter-spacing:-.04em;font-size:1.15rem}.wordmark__status{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-family:ui-monospace,monospace;font-size:.62rem;font-weight:500}.site-header nav{color:var(--muted);align-items:center;gap:24px;font-size:.78rem;display:flex}.site-header nav a{transition:color .18s}.site-header nav a:hover{color:var(--ink)}.theme-toggle{border:1px solid var(--line);background:var(--button);min-height:40px;color:var(--ink);cursor:pointer;border-radius:999px;justify-self:end;align-items:center;gap:8px;padding:7px 12px 7px 8px;transition:border-color .18s,background .18s,transform .18s;display:inline-flex}.theme-toggle:hover{border-color:var(--line-strong);background:var(--button-hover);transform:translateY(-1px)}.theme-toggle__icon{background:var(--ink);width:25px;height:25px;color:var(--paper);border-radius:50%;place-items:center;display:grid}.theme-toggle__label{font-size:.73rem;font-weight:650}main{z-index:1;position:relative;overflow:hidden}.hero,.statement,.work-section,.photo-section,.contact-section{width:min(1180px,100% - 48px);margin:0 auto}.hero{grid-template-columns:minmax(0,1.08fr) minmax(360px,.72fr);align-items:center;gap:clamp(36px,7vw,108px);min-height:100svh;padding:130px 0 70px;display:grid}.eyebrow,.section-heading>p,.project-meta,.terminal-lines,.lab-notes{font-family:SFMono-Regular,Cascadia Code,Roboto Mono,ui-monospace,Menlo,monospace}.eyebrow,.section-heading>p{color:var(--muted);letter-spacing:.15em;text-transform:uppercase;margin:0 0 24px;font-size:.68rem}h1,h2,h3,p{margin-top:0}h1{font-family:var(--serif);letter-spacing:-.075em;margin:0 0 32px;font-size:clamp(4.7rem,9vw,8.6rem);font-weight:400;line-height:.72}h1 span{display:block}h1 span:last-child{color:var(--ink-soft);margin-left:.48em;font-style:italic}h2{max-width:890px;font-family:var(--serif);letter-spacing:-.05em;margin-bottom:0;font-size:clamp(2.7rem,5.1vw,5rem);font-weight:400;line-height:.95}h2 em{color:var(--muted);font-weight:400}h3{font-family:var(--serif);letter-spacing:-.035em;margin-bottom:14px;font-size:2rem;font-weight:500;line-height:1.05}.bio{max-width:640px;color:var(--ink-soft);margin-bottom:34px;font-size:clamp(1.02rem,1.5vw,1.2rem);line-height:1.72}.hero-actions,.project-actions,.section-heading a,.contact-section a{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.hero-actions a,.project-actions a,.section-heading a,.contact-section a{border:1px solid var(--line);background:var(--button);min-height:42px;color:var(--ink);border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:10px 15px;font-size:.86rem;font-weight:650;transition:transform .18s,border-color .18s,background .18s;display:inline-flex}.hero-actions a:first-child{background:var(--ink);color:var(--paper)}.hero-actions a:hover,.project-actions a:hover,.section-heading a:hover,.contact-section a:hover{border-color:var(--line-strong);background:var(--button-hover);transform:translateY(-2px)}.hero-actions a:first-child:hover{background:var(--ink)}.hero-lab{perspective:900px;align-content:center;min-height:590px;display:grid;position:relative}.orbit{border:1px solid var(--line);pointer-events:none;border-radius:50%;position:absolute}.orbit--one{transform:translate3d(var(--orbit-x,0), var(--orbit-y,0), 0) rotate(-18deg);transition:transform .5s cubic-bezier(.2,.7,.2,1);inset:5% -18% 1% -22%}.orbit--two{opacity:.62;transform:translate3d(calc(0px - var(--orbit-x,0px)), calc(0px - var(--orbit-y,0px)), 0) rotate(24deg);border-style:dashed;transition:transform .65s cubic-bezier(.2,.7,.2,1);inset:13% -8% 9% -11%}.stellar-system{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:visible}.orbital-system{--orbit-radius:clamp(205px, 22vw, 292px);pointer-events:none;transform-origin:50%;width:0;height:0;animation:48s linear infinite planetary-orbit;position:absolute;top:50%;left:50%;transform:rotate(28deg)scaleY(.72)}.orbital-system--enhanced{animation:none}.orbital-system__planet{border:1px solid color-mix(in srgb, var(--line-strong) 76%, transparent);background:radial-gradient(circle at 34% 30%, #ffffff8c, transparent 12%), radial-gradient(circle at 62% 68%, color-mix(in srgb, var(--violet) 54%, transparent), transparent 48%), color-mix(in srgb, var(--panel-strong) 88%, var(--cyan));width:38px;height:38px;box-shadow:inset -6px -6px 12px #00000047, 0 0 26px color-mix(in srgb, var(--cyan) 18%, transparent);transform:translateX(var(--orbit-radius)) scaleY(1.3889);border-radius:50%;display:block;position:relative}.orbital-system__moon-path{border:1px solid color-mix(in srgb, var(--line) 68%, transparent);border-radius:50%;animation:14s linear infinite moon-orbit;position:absolute;inset:-20px}.orbital-system__moon-path--enhanced{animation:none}.orbital-system__moon{border:1px solid color-mix(in srgb, var(--line-strong) 72%, transparent);background:radial-gradient(circle at 36% 32%, #ffffff9e, transparent 22%), color-mix(in srgb, var(--ink-soft) 50%, var(--panel-strong));width:11px;height:11px;box-shadow:inset -2px -2px 3px #00000057, 0 0 7px color-mix(in srgb, var(--ink) 15%, transparent);border-radius:50%;position:absolute;top:-6px;left:calc(50% - 6px)}.orbital-system__launched-satellite{z-index:2;width:10px;height:10px;color:var(--ink-soft);opacity:0;will-change:transform, opacity, filter;place-items:center;display:grid;position:absolute;top:calc(50% - 5px);left:calc(50% - 5px)}.orbital-system__launched-satellite--debris:before,.orbital-system__launched-satellite--debris:after{content:"";background:#ffb47d;border-radius:50%;width:2px;height:2px;animation:.9s ease-out both satellite-debris-left;position:absolute;top:4px;left:4px;box-shadow:0 0 4px #ff6b35}.orbital-system__launched-satellite--debris:after{animation-name:satellite-debris-right}@keyframes satellite-debris-left{to{opacity:0;transform:translate(-6px,-4px)scale(.2)}}@keyframes satellite-debris-right{to{opacity:0;transform:translate(7px,3px)scale(.2)}}@keyframes planetary-orbit{0%{transform:rotate(28deg)scaleY(.72)}to{transform:rotate(388deg)scaleY(.72)}}@keyframes moon-orbit{to{transform:rotate(360deg)}}.stellar-flyby{top:var(--flyby-top);width:var(--flyby-size);height:calc(var(--flyby-size) * .72);background:color-mix(in srgb, var(--ink-soft) 52%, var(--panel-strong));box-shadow:inset -2px -1px 3px #0000005c, 0 0 5px color-mix(in srgb, var(--ink) 12%, transparent);opacity:0;animation:asteroid-flyby var(--flyby-duration) linear var(--flyby-delay) infinite;border-radius:58% 42% 54% 46%;position:absolute;left:-18%;transform:translate(0,0)rotate(22deg)}.stellar-flyby:after{content:"";width:calc(var(--flyby-size) * 4.5);background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--ink) 20%, transparent));height:1px;position:absolute;top:50%;right:72%;transform:translateY(-50%)}.stellar-flyby--one{--flyby-top:18%;--flyby-size:7px;--flyby-duration:19s;--flyby-delay:-4s}.stellar-flyby--two{--flyby-top:66%;--flyby-size:5px;--flyby-duration:27s;--flyby-delay:-17s}.stellar-flyby--three{--flyby-top:38%;--flyby-size:9px;--flyby-duration:36s;--flyby-delay:-29s}.stellar-ufo{border:1px solid color-mix(in srgb, var(--line-strong) 82%, transparent);background:color-mix(in srgb, var(--panel-strong) 88%, var(--ink-soft));width:24px;height:7px;box-shadow:0 3px 8px color-mix(in srgb, var(--cyan) 16%, transparent);opacity:0;border-radius:50%;animation:82s ease-in-out -31s infinite ufo-flyby;position:absolute;top:12%;left:-16%}.stellar-ufo--two{width:20px;animation-duration:97s;animation-delay:-63s;top:62%}.stellar-ufo--enhanced{opacity:0;will-change:transform, opacity;animation:none;top:0;left:0}.stellar-ufo:before{content:"";border:1px solid color-mix(in srgb, var(--cyan) 40%, transparent);background:color-mix(in srgb, var(--cyan) 18%, transparent);border-bottom:0;border-radius:50% 50% 0 0;width:7px;height:5px;position:absolute;bottom:5px;left:8px}.stellar-ufo:after{content:"";background:color-mix(in srgb, var(--cyan) 58%, transparent);height:1px;box-shadow:0 0 6px color-mix(in srgb, var(--cyan) 36%, transparent);border-radius:50%;position:absolute;inset:auto 4px -2px}@keyframes asteroid-flyby{0%,68%{opacity:0;transform:translate(0,0)rotate(22deg)}70%{opacity:.56}80%{opacity:.32;transform:translate(1500px,180px)rotate(420deg)}82%,to{opacity:0;transform:translate(1580px,190px)rotate(440deg)}}@keyframes ufo-flyby{0%,84%{opacity:0;transform:translate(0,0)rotate(-3deg)}85%{opacity:.42}91%{opacity:.3;transform:translate(1420px,72px)rotate(4deg)}92%,to{opacity:0;transform:translate(1500px,82px)rotate(5deg)}}.terminal-pulse{z-index:2;border:1px solid var(--line-strong);background:linear-gradient(145deg, color-mix(in srgb, var(--violet) 11%, transparent), transparent 42%), var(--panel);color:var(--ink);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:18px;position:relative;overflow:hidden}.terminal-top{border-bottom:1px solid var(--line);align-items:center;gap:7px;height:48px;padding:0 18px;display:flex}.terminal-top:after{content:"morahan.dev / signal";color:var(--muted);letter-spacing:.08em;margin-left:auto;font-family:ui-monospace,monospace;font-size:.62rem}.terminal-top span{background:var(--vermillion);border-radius:50%;width:8px;height:8px}.terminal-top span:nth-child(2){background:var(--gold)}.terminal-top span:nth-child(3){background:var(--chartreuse)}.terminal-lines{align-content:center;gap:24px;min-height:310px;padding:38px;display:grid}.terminal-lines p{grid-template-columns:112px 1fr;gap:16px;margin:0;font-size:.74rem;line-height:1.5;display:grid}.terminal-lines span{color:var(--cyan)}.terminal-lines strong{color:var(--ink-soft);font-weight:500}.lab-notes{z-index:3;flex-wrap:wrap;gap:8px;width:calc(100% - 42px);margin:-20px auto 0;display:flex;position:relative}.lab-notes span{border:1px solid var(--line);background:var(--paper-soft);color:var(--muted);border-radius:999px;align-items:center;gap:6px;padding:8px 11px;font-size:.68rem;display:inline-flex}.statement{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(3,1fr);display:grid}.statement p{min-height:142px;color:var(--ink-soft);font-family:var(--serif);align-items:end;margin:0;padding:26px;font-size:1.18rem;line-height:1.35;display:flex}.statement p+p{border-left:1px solid var(--line)}.statement p:before{content:"✦";color:var(--muted);align-self:flex-start;margin-right:auto;font-family:sans-serif;font-size:.64rem}.work-section,.photo-section,.contact-section{padding-top:130px}.work-section,.photo-section{content-visibility:auto;contain-intrinsic-size:auto 1600px}.section-heading{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:32px;margin-bottom:48px;display:grid}.section-heading>p{grid-column:1/-1;margin-bottom:-8px}.section-heading a{white-space:nowrap}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.project-card{--tilt-x:0deg;--tilt-y:0deg;--image-shift-x:0px;--image-shift-y:0px;border:1px solid var(--line);background:var(--panel);isolation:isolate;min-width:0;transform:perspective(1000px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateY(var(--card-lift,0));transform-style:preserve-3d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:18px;grid-template-rows:auto 1fr;transition:transform .26s,border-color .26s,box-shadow .26s;display:grid;position:relative;overflow:hidden}.project-card:after{content:"";z-index:0;background:radial-gradient(circle at 20% 0%, color-mix(in srgb, var(--accent,var(--cyan)) 18%, transparent), transparent 34%);opacity:0;pointer-events:none;transition:opacity .26s;position:absolute;inset:0}.project-card>*{z-index:1;position:relative}.project-card:hover{--card-lift:-5px;border-color:var(--line-strong);box-shadow:var(--shadow);will-change:transform}.project-card:hover:after{opacity:1}.project-card.wide{grid-column:span 2}.project-card.tall{grid-row:span 2}.visual-link{aspect-ratio:16/9;background:#0c0d11;display:block;overflow:hidden}.project-card.tall .visual-link{aspect-ratio:4/3}.visual-link img{object-fit:cover;filter:saturate(.86)contrast(1.02);width:100%;height:100%;transition:transform .6s cubic-bezier(.2,.7,.2,1),filter .3s}.project-card:hover .visual-link img{transform:translate3d(var(--image-shift-x), var(--image-shift-y), 0) scale(1.045);filter:saturate()contrast(1.02)}.project-copy{--accent:var(--ink);flex-direction:column;min-height:365px;padding:26px;display:flex;position:relative}.project-copy:before{content:"";background:var(--accent);height:2px;position:absolute;inset:0 0 auto}.project-copy[data-accent=vermillion]{--accent:var(--vermillion)}.project-copy[data-accent=cyan]{--accent:var(--cyan)}.project-copy[data-accent=chartreuse]{--accent:var(--chartreuse)}.project-copy[data-accent=violet]{--accent:var(--violet)}.project-copy[data-accent=gold]{--accent:var(--gold)}.project-copy[data-accent=ink]{--accent:var(--ink)}.project-meta{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;gap:14px;margin-bottom:30px;font-size:.65rem;display:flex}.project-meta svg{color:var(--accent);flex:none}.project-copy p{color:var(--muted);font-size:.91rem;line-height:1.65}.project-copy .summary{color:var(--ink-soft);font-family:var(--serif);font-size:1.08rem;line-height:1.45}.project-copy ul{flex-wrap:wrap;gap:7px;margin:auto 0 22px;padding:0;list-style:none;display:flex}.project-copy li{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:6px 9px;font-size:.7rem}.project-actions a{min-height:38px;padding:8px 12px;font-size:.78rem}.photo-section{padding-bottom:20px}.photo-grid{grid-template-rows:repeat(2,260px);grid-template-columns:repeat(12,1fr);gap:12px;display:grid}.photo-grid a{border:1px solid var(--line);background:#0c0d11;border-radius:14px;min-width:0;position:relative;overflow:hidden}.photo-grid__caption{color:#fff;pointer-events:none;background:linear-gradient(#0000,#050609c2);gap:3px;padding:44px 14px 13px;display:grid;position:absolute;inset:auto 0 0}.photo-grid__caption strong{font-family:var(--serif);font-size:.98rem;font-weight:500}.photo-grid__caption small{color:#ffffffad;letter-spacing:.06em;text-transform:uppercase;font-size:.62rem}.photo-grid a:first-child{grid-column:span 5}.photo-grid a:nth-child(2){grid-column:span 4}.photo-grid a:nth-child(3),.photo-grid a:nth-child(4){grid-column:span 3}.photo-grid a:nth-child(5){grid-column:span 5}.photo-grid a:nth-child(6){grid-column:span 4}.photo-grid img{object-fit:cover;filter:saturate(.88);width:100%;height:100%;transition:transform .6s cubic-bezier(.2,.7,.2,1),filter .3s}.photo-grid a:hover img{filter:saturate(1.08);transform:scale(1.045)}.photo-grid a:after{content:"View frame ↗";color:#fff;opacity:0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#08090d94;border:1px solid #ffffff3d;border-radius:999px;padding:7px 10px;font-size:.66rem;transition:opacity .18s,transform .18s;position:absolute;bottom:12px;right:12px;transform:translateY(5px)}.photography-hero,.photography-gallery{width:min(1180px,100% - 48px);margin:0 auto}.photography-hero{align-content:end;min-height:76svh;padding:170px 0 88px;display:grid}.photography-hero h1{max-width:900px;margin-bottom:48px;font-size:clamp(5rem,11vw,10rem)}.photography-hero__intro{grid-template-columns:minmax(0,680px) auto;align-items:end;gap:36px;display:grid}.photography-hero__intro p{color:var(--ink-soft);font-family:var(--serif);margin:0;font-size:clamp(1.12rem,2vw,1.42rem);line-height:1.6}.photography-hero__intro a{color:var(--muted);align-items:center;gap:8px;font-size:.8rem;display:inline-flex}.photography-gallery{grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-flow:dense;grid-auto-rows:44px;gap:14px;padding-bottom:36px;display:grid}.photography-gallery__item{grid-area:span 8/span 4;min-width:0;scroll-margin-top:110px}.photography-gallery__item--wide{grid-area:span 10/span 8}.photography-gallery__item--tall{grid-row:span 11}.photography-gallery__item button{border:1px solid var(--line);width:100%;height:100%;color:inherit;cursor:zoom-in;background:#0c0d11;border-radius:18px;padding:0;display:block;position:relative;overflow:hidden}.photography-gallery__item img{object-fit:cover;filter:saturate(.9)contrast(1.02);width:100%;height:100%;transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .3s}.photography-gallery__item button:hover img{filter:saturate(1.04)contrast(1.02);transform:scale(1.035)}.photography-gallery__caption{color:#fff;text-align:left;background:linear-gradient(#0000,#050609db);gap:4px;padding:72px 20px 18px;display:grid;position:absolute;inset:auto 0 0}.photography-gallery__caption strong{font-family:var(--serif);font-size:1.32rem;font-weight:500}.photography-gallery__caption small{color:#ffffffad;letter-spacing:.1em;text-transform:uppercase;font-size:.64rem}.photo-lightbox{color:#fff;background:0 0;border:0;width:min(1380px,100% - 32px);max-width:none;max-height:calc(100svh - 32px);padding:0;overflow:visible}.photo-lightbox::backdrop{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#030407e0}.photo-lightbox__frame{justify-items:center;gap:12px;display:grid;position:relative}.photo-lightbox__frame>button{z-index:1;color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#08090d9e;border:1px solid #ffffff38;border-radius:50%;place-items:center;width:42px;height:42px;padding:0;display:grid;position:absolute;top:12px;right:12px}.photo-lightbox__frame img{object-fit:contain;border-radius:16px;max-width:100%;max-height:calc(100svh - 104px);box-shadow:0 36px 120px #00000080}.photo-lightbox__frame p{align-items:baseline;gap:12px;margin:0;display:flex}.photo-lightbox__frame p strong{font-family:var(--serif);font-weight:500}.photo-lightbox__frame p span{color:#ffffff9e;letter-spacing:.08em;text-transform:uppercase;font-size:.7rem}.photography-contact{padding-top:120px}.photo-grid a:hover:after{opacity:1;transform:none}.contact-section{grid-template-columns:minmax(0,1fr) minmax(260px,.52fr) auto;align-items:end;gap:34px;padding-bottom:80px;display:grid}.contact-section h2{font-size:clamp(2.6rem,4.8vw,4.7rem)}.contact-section p{color:var(--muted);margin-bottom:0;font-size:.98rem;line-height:1.7}@media (width<=980px){.hero{grid-template-columns:1fr;min-height:auto;padding-top:150px}.hero-copy{max-width:780px}.hero-lab{width:min(620px,100%);min-height:490px;margin:0 auto}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-card.wide,.project-card.tall{grid-area:auto}.contact-section{grid-template-columns:1fr}.photo-grid{grid-template-rows:repeat(2,220px)}.photography-gallery__item,.photography-gallery__item--wide,.photography-gallery__item--tall{grid-column:span 6}.photography-gallery__item--wide{grid-row:span 9}}@media (width<=720px){.site-header{grid-template-columns:1fr auto;width:calc(100% - 24px);padding-left:14px;inset:10px 12px auto}.site-header nav,.wordmark__status,.theme-toggle__label{display:none}.theme-toggle{padding:7px}.hero,.statement,.work-section,.photo-section,.contact-section,.photography-hero,.photography-gallery{width:min(100% - 28px,1180px)}.hero{gap:32px;padding-top:120px}h1{font-size:clamp(4rem,21vw,6rem)}h1 span:last-child{margin-left:.14em}h2{font-size:clamp(2.55rem,13vw,4rem)}.hero-actions a{flex:130px}.hero-lab{min-height:390px}.orbital-system{--orbit-radius:clamp(170px, 48vw, 220px)}.terminal-lines{gap:18px;min-height:252px;padding:26px 20px}.terminal-lines p{grid-template-columns:92px 1fr;gap:9px;font-size:.66rem}.orbit--one{inset:4% -14%}.statement,.project-grid,.section-heading{grid-template-columns:1fr}.statement p{min-height:100px;padding:20px}.statement p+p{border-top:1px solid var(--line);border-left:0}.work-section,.photo-section,.contact-section{padding-top:96px}.section-heading{gap:22px;margin-bottom:32px}.section-heading>p{margin-bottom:0}.project-copy{min-height:330px;padding:22px}.photo-grid{grid-template-rows:repeat(3,190px);grid-template-columns:repeat(2,1fr);gap:8px}.photo-grid a:nth-child(n){grid-column:span 1}.photography-hero{min-height:auto;padding-top:148px}.photography-hero h1{margin-bottom:36px}.photography-hero__intro{grid-template-columns:1fr}.photography-gallery{grid-auto-rows:38px;gap:10px}.photography-gallery__item,.photography-gallery__item--wide,.photography-gallery__item--tall{grid-area:span 9/1/auto/-1}.photography-gallery__item--tall{grid-row:span 11}.contact-section{padding-bottom:48px}}@media (width<=420px){.terminal-top:after{content:"signal / live"}.terminal-lines p{grid-template-columns:1fr;gap:3px}.photo-grid{grid-template-rows:repeat(3,160px)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.orbital-system,.orbital-system__moon-path{animation:none!important}.orbital-system__launched-satellite{display:none}.stellar-flyby,.stellar-ufo{display:none;animation:none!important}}
