:root{--color-bg:#f1ead9;--color-bg-raised:#fffdf6;--color-bg-sunken:#e7dfc9;--color-ink:#16180e;--color-ink-raised:#23261a;--color-ink-soft:#4a4a3a;--color-ink-faint:#8c8768;--color-line:#16140e29;--color-line-strong:#16140e52;--color-line-on-ink:#f5f0e329;--color-line-on-ink-strong:#f5f0e34d;--color-paper:#f5f0e3;--color-paper-soft:#c9c2a4;--color-paper-faint:#8f8a70;--color-accent:#2e4d34;--color-accent-ink:#1c3320;--color-accent-bright:#7ecb86;--color-shipped:#2e4d34;--color-shipped-bg:#2e4d3424;--color-shipped-on-ink:#7ecb86;--color-shipped-on-ink-bg:#7ecb8629;--color-wip:#9c6b2c;--color-wip-bg:#9c6b2c29;--color-wip-on-ink:#e3a959;--color-wip-on-ink-bg:#e3a9592e;--color-archived:#8c8768;--color-archived-bg:#8c876829;--color-archived-on-ink:#b7b190;--color-archived-on-ink-bg:#b7b19029;--font-display:"Space Grotesk", "Helvetica Neue", sans-serif;--font-body:"Inter", "Helvetica Neue", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--container:1080px;--radius:6px;--shadow-card:0 1px 2px #16140e0f, 0 10px 24px -10px #16140e38;--shadow-card-hover:0 2px 4px #16140e14, 0 18px 34px -12px #16140e47}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--color-bg);color:var(--color-ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.55}img{max-width:100%;display:block}a{color:inherit}button{font:inherit}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;border-radius:2px}.nav :focus-visible,.footer :focus-visible,.hero__chain :focus-visible,.cta-band__panel :focus-visible{outline-color:var(--color-accent-bright)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.container{max-width:var(--container);margin:0 auto;padding:0 24px}.eyebrow{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--color-ink-faint);font-size:12.5px}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-weight:600}.status-pill{font-family:var(--font-mono);letter-spacing:.03em;text-transform:uppercase;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 9px;font-size:11.5px;display:inline-flex}.status-pill:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.status-pill--shipped,.status-pill--live{background:var(--color-shipped-bg);color:var(--color-shipped)}.status-pill--wip{background:var(--color-wip-bg);color:var(--color-accent-ink)}.status-pill--archived{background:var(--color-archived-bg);color:var(--color-archived)}.tag{font-family:var(--font-mono);color:var(--color-ink-soft);background:var(--color-bg-raised);border:1px solid var(--color-line);border-radius:4px;padding:3px 8px;font-size:12px}.btn{font-family:var(--font-mono);border-radius:var(--radius);border:1px solid var(--color-ink);background:var(--color-ink);color:var(--color-bg-raised);cursor:pointer;align-items:center;gap:8px;padding:11px 18px;font-size:13.5px;font-weight:500;text-decoration:none;transition:transform .15s,background .15s;display:inline-flex}.btn:hover{background:var(--color-accent-ink);transform:translateY(-1px)}.btn--ghost{color:var(--color-ink);border:1px solid var(--color-line-strong);background:0 0}.btn--ghost:hover{background:var(--color-bg-raised)}.bi{flex-direction:column;gap:.2em;max-width:100%;display:flex}.bi--inline-block{display:inline-flex}.bi__fr{display:block}.bi__en{font-family:var(--font-mono);color:var(--color-ink-faint);letter-spacing:.01em;font-size:.65em;font-weight:400;line-height:1.35;display:block}.bi__en:before{content:"// ";opacity:.7}.bi__en-inline{font-family:var(--font-mono);color:var(--color-ink-faint);letter-spacing:.01em;font-size:.85em;font-weight:400}.bi__en-inline:before{content:"// ";opacity:.7}.layout{flex-direction:column;min-height:100vh;display:flex}main{flex:1}.nav{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 1px 0 var(--color-line-on-ink), 0 12px 24px -16px #0006;z-index:20;background:#16180ef0;position:sticky;top:0}.nav__inner{justify-content:space-between;align-items:center;gap:24px;padding-top:16px;padding-bottom:16px;display:flex}.nav__logo{color:var(--color-paper);flex-direction:column;line-height:1.2;text-decoration:none;display:flex}.nav__logo-name{font-family:var(--font-display);font-size:16px;font-weight:600}.nav__logo-tag{font-family:var(--font-mono);color:var(--color-paper-faint);font-size:11px}.nav__links{flex:1;justify-content:center;gap:4px;display:flex}.nav__link{color:var(--color-paper-soft);border-radius:999px;padding:8px 12px;font-size:14.5px;text-decoration:none;transition:background .15s,color .15s}.nav__link:hover{color:var(--color-paper);background:var(--color-ink-raised)}.nav__link--active{color:var(--color-ink);background:var(--color-accent-bright);font-weight:600}.nav__link--active:hover{color:var(--color-ink);background:var(--color-accent-bright)}.nav__status{flex-shrink:0}.nav .status-pill--archived{background:var(--color-archived-on-ink-bg);color:var(--color-archived-on-ink)}@media (width<=760px){.nav__inner{flex-wrap:wrap;row-gap:10px}.nav__links{order:3;justify-content:flex-start;gap:2px;width:100%;overflow-x:auto}.nav__status{display:none}}.footer{background:var(--color-ink);margin-top:96px;padding:40px 0}.footer__inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.footer__line{color:var(--color-paper-soft);margin:0;font-size:13.5px}.footer__links{font-family:var(--font-mono);gap:20px;font-size:13px;display:flex}.footer__links a{color:var(--color-paper-soft);border-bottom:1px solid #0000;text-decoration:none}.footer__links a:hover{color:var(--color-paper);border-bottom-color:var(--color-line-on-ink-strong)}.lightbox{z-index:1000;cursor:zoom-out;background:#17190fe6;justify-content:center;align-items:center;padding:40px;animation:.15s lightbox-in;display:flex;position:fixed;inset:0}.lightbox__content{cursor:default;flex-direction:column;align-items:center;gap:16px;max-width:100%;max-height:100%;margin:0;display:flex}.lightbox__img{border-radius:var(--radius);object-fit:contain;max-width:100%;min-height:0;max-height:100%;display:block;box-shadow:0 24px 60px #00000073}.lightbox__caption{text-align:center;max-width:60ch;color:var(--color-paper-soft);font-size:14.5px}.lightbox__caption .bi__en{color:var(--color-paper-faint)}.lightbox__close{color:#f5f0e3;cursor:pointer;background:#f5f0e314;border:1px solid #f5f0e34d;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:24px;line-height:1;transition:background .15s;display:flex;position:absolute;top:20px;right:24px}.lightbox__close:hover{background:#f5f0e32e}@keyframes lightbox-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.lightbox{animation:none}}.project-card{background:var(--color-bg-raised);border:1px solid var(--color-line);border-radius:var(--radius);box-shadow:var(--shadow-card);flex-direction:column;gap:10px;padding:24px;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex;position:relative}.project-card:hover{border-color:var(--color-line-strong);box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.project-card__overlay{z-index:1;border-radius:var(--radius);cursor:pointer;background:0 0;border:none;padding:0;position:absolute;inset:0}.project-card__thumb{aspect-ratio:16/10;border-bottom:1px solid var(--color-line);border-radius:var(--radius) var(--radius) 0 0;background:var(--color-bg-sunken);width:calc(100% + 48px);margin:-24px -24px 4px;display:block;overflow:hidden}.project-card__thumb img{object-fit:cover;width:100%;height:100%;transition:transform .2s;display:block}.project-card:hover .project-card__thumb img{transform:scale(1.03)}.project-card__top{justify-content:space-between;align-items:center;display:flex}.project-card__year{font-family:var(--font-mono);color:var(--color-ink-faint);font-size:12px}.project-card__title{margin-top:4px;font-size:19px}.project-card__role{font-family:var(--font-mono);color:var(--color-accent-ink);margin:0;font-size:12.5px}.project-card__tagline{color:var(--color-ink-soft);margin:0;font-size:14.5px}.project-card__tags{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.divider{width:100%;height:1px;display:block;overflow:visible}.hero{max-width:760px;padding:88px 24px 56px;position:relative;overflow:hidden}.hero>*{z-index:1;position:relative}.hero .hero__motif{pointer-events:none;z-index:0;width:300px;height:300px;position:absolute;top:-20px;right:-20px}.hero__motif-line{opacity:.55}.hero__motif-line--flow{stroke-dasharray:5 9;animation:5s linear infinite hero-flow}@keyframes hero-flow{to{stroke-dashoffset:-140px}}.hero__motif-node{animation:3.2s ease-in-out infinite hero-node-pulse}@keyframes hero-node-pulse{0%,to{opacity:.45}50%{opacity:1}}.hero__title{margin-top:14px;font-size:clamp(32px,5vw,48px);line-height:1.12}.hero__lede{color:var(--color-ink-soft);max-width:58ch;margin-top:20px;font-size:17px}.hero__chain{background:var(--color-ink);border:1px solid var(--color-line-on-ink);border-radius:var(--radius);box-shadow:var(--shadow-card);font-family:var(--font-mono);flex-wrap:wrap;align-items:center;gap:8px;margin-top:32px;padding:14px 16px;font-size:12.5px;display:flex}.hero__chain-item{align-items:center;gap:8px;display:inline-flex}.hero__chain-role{color:var(--color-paper-soft)}.hero__chain-item:last-child .hero__chain-role{color:var(--color-accent-bright);font-weight:600}.hero__chain-arrow{color:var(--color-paper-faint)}.hero__actions{flex-wrap:wrap;gap:12px;margin-top:32px;display:flex}.capabilities{grid-template-columns:repeat(2,1fr);gap:20px 32px;padding-top:64px;padding-bottom:64px;display:grid}.capability__head{align-items:center;gap:10px;display:flex}.capability__icon{width:20px;height:20px;color:var(--color-accent-ink);flex-shrink:0}.capability h3{color:var(--color-accent-ink);font-size:18px;line-height:1}.capability p{color:var(--color-ink-soft);margin-top:10px;font-size:14.5px}.featured{padding-top:24px;padding-bottom:64px}.featured__header{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:24px;display:flex}.featured__header h2{font-size:24px}.featured__all{font-family:var(--font-mono);color:var(--color-ink-soft);white-space:nowrap;font-size:13px;text-decoration:none}.featured__all:hover{color:var(--color-ink)}.featured__grid{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.cta-band{max-width:640px;padding:32px 24px 96px}.cta-band__panel{background:var(--color-ink);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:40px 36px}.cta-band__panel h2{color:var(--color-paper);font-size:24px}.cta-band__panel p{color:var(--color-paper-soft);margin-top:14px;margin-bottom:24px}.cta-band__panel .btn--ghost{color:var(--color-paper);border-color:var(--color-line-on-ink-strong)}.cta-band__panel .btn--ghost:hover{background:var(--color-ink-raised)}@media (width<=860px){.capabilities,.featured__grid{grid-template-columns:1fr}}.projects-page{padding:72px 24px 96px}.projects-page__title{margin-top:12px;font-size:clamp(28px,4vw,38px)}.projects-page__lede{color:var(--color-ink-soft);max-width:56ch;margin-top:14px}.projects-page__filters{gap:8px;margin-top:32px;margin-bottom:32px;display:flex}.filter-chip{font-family:var(--font-mono);border:1px solid var(--color-line-strong);color:var(--color-ink-soft);cursor:pointer;background:0 0;border-radius:999px;padding:8px 16px;font-size:13px;transition:background .15s,color .15s}.filter-chip:hover{background:var(--color-bg-raised)}.filter-chip--active{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-bg-raised)}.projects-page__grid{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}@media (width<=860px){.projects-page__grid{grid-template-columns:1fr}}.about-page{max-width:720px;padding:72px 24px 96px}.about-page__title{margin-top:12px;font-size:clamp(28px,4vw,38px)}.about-page__body{color:var(--color-ink-soft);flex-direction:column;gap:16px;margin-top:24px;font-size:16px;display:flex}.about-page__body p{margin:0}.about-page__timeline,.about-page__values{margin-top:56px}.about-page__divider{margin-bottom:40px}.about-page__timeline h2,.about-page__values h2{margin-bottom:24px;font-size:21px}.timeline{flex-direction:column;gap:20px;margin:0;padding:0;list-style:none;display:flex}.timeline__item{gap:14px;display:flex;position:relative}.timeline__marker{width:10px;color:var(--color-ink-faint);flex-shrink:0;justify-content:center;padding-top:6px;display:flex;position:relative}.timeline__marker--current{color:var(--color-accent)}.timeline__marker--current svg{transform-origin:50%;animation:2.4s ease-in-out infinite timeline-pulse}@keyframes timeline-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.timeline__marker svg{z-index:1;position:relative}.timeline__marker:after{content:"";background:linear-gradient(to bottom, var(--seg-from,var(--color-line-strong)), var(--seg-to,var(--color-line-strong)));width:1px;position:absolute;top:16px;bottom:-20px;left:50%;transform:translate(-50%)}.timeline__item:last-child .timeline__marker:after{display:none}.timeline__year{font-family:var(--font-mono);color:var(--color-ink-faint);flex-shrink:0;width:44px;padding-top:2px;font-size:13px}.timeline__role{margin:0;font-weight:500}.timeline__note{color:var(--color-ink-soft);margin:4px 0 0;font-size:14.5px}.about-page__values ul{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.about-page__values li{color:var(--color-ink-soft);padding-left:20px;position:relative}.about-page__values li:before{content:"—";color:var(--color-accent-ink);position:absolute;left:0}.contact-page{max-width:680px;padding:72px 24px 120px}.contact-page__title{margin-top:12px;font-size:clamp(28px,4vw,38px)}.contact-page__lede{color:var(--color-ink-soft);margin-top:16px}.contact-page__grid{grid-template-columns:1fr 1fr;gap:14px;margin-top:40px;display:grid}.contact-card{border:1px solid var(--color-line);border-radius:var(--radius);background:var(--color-bg-raised);box-shadow:var(--shadow-card);color:var(--color-ink);padding:20px;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s;display:block}.contact-card:hover{border-color:var(--color-line-strong);box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.contact-card p{font-family:var(--font-mono);margin:8px 0 0;font-size:14.5px}@media (width<=560px){.contact-page__grid{grid-template-columns:1fr}}
