.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;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}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{inset:5% -18% 1% -22%;transform:rotate(-18deg)}.orbit--two{opacity:.62;border-style:dashed;inset:13% -8% 9% -11%;transform:rotate(24deg)}.planet{background:var(--cyan);width:12px;height:12px;box-shadow:0 0 30px color-mix(in srgb, var(--cyan) 80%, transparent);border-radius:50%;position:absolute;top:11%;right:4%}.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;transform:rotate(1.5deg)}.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}.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{border:1px solid var(--line);background:var(--panel);isolation:isolate;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:18px;grid-template-rows:auto 1fr;min-width:0;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{border-color:var(--line-strong);box-shadow:var(--shadow);transform:translateY(-5px)}.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{filter:saturate()contrast(1.02);transform:scale(1.04)}.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 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)}.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)}}@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{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}.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}.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}}
