@font-face{font-family:'Manrope';src:url('/assets/manrope-700-noma.woff') format('woff');font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:'Noma Sans';src:url('/assets/dm-sans-400.woff') format('woff');font-style:normal;font-weight:400;font-display:swap}
:root{color-scheme:dark;--background:#0b0b0b;--text:#fff;--underline:#666;background:var(--background);color:var(--text);font-family:'Noma Sans',Arial,sans-serif}
:root[data-theme="day"]{color-scheme:light;--background:#f2f1ed;--text:#111;--underline:#999}
*{box-sizing:border-box}
html,body{margin:0;min-width:240px;min-height:100%;background:var(--background)}
body{-webkit-font-smoothing:antialiased}
.intro{display:none;position:fixed;inset:0;z-index:10;place-items:center;background:var(--background);color:var(--text);transition:background-color .36s ease;outline:none}
:root[data-intro] .intro{display:grid}
:root[data-intro] .presence{visibility:hidden}
:root[data-intro] body{overflow:hidden}
:root[data-intro="revealing"] .presence{visibility:visible}
:root[data-intro="revealing"] .intro{background:transparent;pointer-events:none}
:root[data-intro="revealing"] .identity>h1{opacity:0}
:root[data-intro] .identity>p,:root[data-intro] .brand-mark,:root[data-intro] .footer-links{opacity:0}
:root[data-intro="revealing"] .identity>p,:root[data-intro="revealing"] .brand-mark,:root[data-intro="revealing"] .footer-links{opacity:1;transition:opacity .36s ease}
:root[data-intro] .identity,:root[data-intro-complete] .identity{animation:none}
.intro-trigger{--intro-mark:clamp(104px,13vw,136px);--intro-spread:60px;position:relative;width:min(640px,calc(100vw - 24px));height:clamp(220px,36vw,320px);padding:0;border:0;border-radius:0;background:transparent;color:inherit;font:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.intro-trigger:focus-visible{outline:1px solid currentColor;outline-offset:8px}
.intro-symbol{position:absolute;top:50%;left:50%;width:var(--intro-mark);height:var(--intro-mark);transform:translate(-50%,-50%);overflow:visible;pointer-events:none;opacity:1;transition:opacity .68s ease}
.intro-symbol path{fill:currentColor;transform-box:view-box;transition:transform 1.4s cubic-bezier(.65,0,.35,1)}
.intro-upper{transform-origin:0 0}
.intro-lower{transform-origin:100% 100%}
.intro-wordmark{position:absolute;top:50%;left:50%;display:block;width:max-content;font-family:'Manrope','Noma Sans',Arial,sans-serif;font-size:clamp(42px,13vw,104px);font-weight:700;letter-spacing:-.035em;line-height:1.2;white-space:nowrap;opacity:0;transform:translate(-50%,-50%) translateY(8px);transform-origin:center;transition:opacity 1.04s ease .28s,transform 1.04s cubic-bezier(.45,0,.2,1) .28s;pointer-events:none}
:root[data-intro]:not([data-intro="waiting"]) .intro-upper{transform:translateX(calc(-1 * var(--intro-spread))) scale(.42)}
:root[data-intro]:not([data-intro="waiting"]) .intro-lower{transform:translateX(var(--intro-spread)) scale(.42)}
:root[data-intro]:not([data-intro="waiting"]) .intro-wordmark{opacity:1}
:root[data-intro="opening"] .intro-wordmark,:root[data-intro="dissolving"] .intro-wordmark{transform:translate(-50%,-50%)}
:root[data-intro="dissolving"] .intro-symbol,:root[data-intro="morphing"] .intro-symbol,:root[data-intro="revealing"] .intro-symbol{opacity:0}
:root[data-intro="morphing"] .intro-wordmark,:root[data-intro="revealing"] .intro-wordmark{transform:translate(-50%,-50%) translate(var(--home-x,0px),var(--home-y,0px)) scale(var(--home-scale,1));transition:transform var(--morph-duration,1.4s) cubic-bezier(.45,0,.2,1)}
:root[data-intro]:not([data-intro="waiting"]) .intro-trigger{cursor:default}
.presence{position:relative;min-height:100vh;min-height:100svh;display:grid;place-items:center;padding:calc(96px + max(env(safe-area-inset-top),env(safe-area-inset-bottom))) 24px}
.presence:focus{outline:none}
.identity{text-align:center;max-width:640px;padding-bottom:68px;animation:arrive 1.3s ease-out both}
h1{font-family:'Manrope','Noma Sans',Arial,sans-serif;margin:0;font-size:clamp(36px,3.2vw,46px);font-weight:700;letter-spacing:-.035em;line-height:1.2}
p{max-width:28ch;margin:26px auto 0;font-size:18px;font-weight:400;line-height:1.5;color:var(--text);text-wrap:balance}
.brand-mark{display:block;width:12px;height:12px;margin:0;color:var(--text);overflow:visible}
.brand-mark path{fill:var(--text)}
.mark-hover-area{pointer-events:all}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .brand-mark path{transition:transform .22s cubic-bezier(.2,.7,.3,1);pointer-events:none}
  .brand-mark:hover .mark-upper{transform:translate(-10px,-10px)}
  .brand-mark:hover .mark-lower{transform:translate(10px,10px)}
}
a{color:inherit;text-decoration:none;touch-action:manipulation}
a:focus-visible{outline:1px solid currentColor;outline-offset:7px}
.footer{position:absolute;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:24px}
.footer-links{display:flex;align-items:center;justify-content:center;gap:16px;min-height:44px;font-size:14px;font-weight:400;line-height:1.5;white-space:nowrap}
.contact-link{display:grid;place-items:center;min-height:44px;padding:8px 0;font-size:inherit;line-height:inherit;text-decoration:none}
.footer-divider{width:1px;height:12px;background:currentColor;opacity:.35;flex-shrink:0}
.contact-close{position:absolute;top:max(20px,env(safe-area-inset-top));right:max(20px,env(safe-area-inset-right));width:44px;height:44px;display:grid;place-items:center;color:var(--text);transition:opacity .16s ease}
.contact-close:hover{opacity:.65}
.contact-close svg{display:block;width:16px;height:16px}
.email-area{display:flex;align-items:center;justify-content:center;width:max-content;max-width:100%;padding:24px}
.email{font-size:clamp(18px,2vw,22px);font-weight:400;line-height:1.5;letter-spacing:-.02em;animation:arrive 1.3s ease-out both}
.email:hover{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}
::selection{color:var(--background);background:var(--text)}
@keyframes arrive{from{opacity:0}to{opacity:1}}
@media(max-width:600px){.identity{max-width:330px}}
@media(prefers-reduced-motion:reduce){.identity,.email,.presence{animation:none!important}.intro,.intro-symbol,.intro-symbol path,.intro-wordmark,.contact-link,.contact-close{transition:none}:root[data-intro] .intro{display:none}:root[data-intro] .presence{visibility:visible}}
