:root{--outline:#1a1d2b;--navy-900:#161a29;--navy-800:#1d2233;--navy-700:#262d44;--navy-600:#313a57;--slate-400:#6c7fa2;--cream-50:#fbf6ea;--cream-100:#f4eee0;--cream-200:#e8dfca;--amber-300:#ffd690;--amber-400:#f4b862;--amber-600:#9a5a1f;--teal-600:#2f6a63;--cyan-400:#6cbfcd;--green-600:#3f7d46;--paper:#f8f3e8;--paper-2:#efe8d8;--ink:#1d2233;--ink-2:#3a4159;--muted:#5d6479;--line:#1d223324;--line-strong:#1d223352;--on-dark:#f4eee0;--on-dark-muted:#b9bdcc;--focus:#f4b862;--font-sans:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--font-pixel:"Pixelify Sans", var(--font-mono);--radius:8px;--radius-sm:6px;--ease-out:cubic-bezier(.16, 1, .3, 1);--shadow-pixel:0 2px 0 var(--outline);--topbar-h:56px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--navy-800);min-height:100dvh;color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11", "ss01";margin:0;font-size:16px;line-height:1.55}h1,h2,h3,h4,p,ul,ol,dl,dd{margin:0}ul,ol{padding:0;list-style:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}a{color:inherit}img{max-width:100%;display:block}kbd{font-family:var(--font-mono)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.pixel{font-family:var(--font-pixel);letter-spacing:.01em;font-weight:600}.mono{font-family:var(--font-mono)}.muted{color:var(--muted)}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{z-index:100;background:var(--cream-50);color:var(--ink);border:1px solid var(--outline);border-radius:var(--radius-sm);padding:8px 14px;font-size:14px;font-weight:600;transition:transform .15s;position:fixed;top:8px;left:8px;transform:translateY(-160%)}.skip-link:focus{transform:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.stage{background:var(--navy-900);touch-action:none;-webkit-user-select:none;user-select:none;position:fixed;inset:0;overflow:hidden}.stage__canvas{image-rendering:pixelated;image-rendering:crisp-edges;outline:none;display:block;position:absolute;top:0;left:0}.stage--playing .stage__canvas{cursor:pointer}.stage__fade{background:var(--navy-900);opacity:0;pointer-events:none;transition:opacity .2s;position:absolute;inset:0}.stage__fade.is-active{opacity:1}.btn{border-radius:var(--radius-sm);white-space:nowrap;min-height:46px;transition:transform .15s var(--ease-out), background-color .15s, border-color .15s;justify-content:center;align-items:center;gap:10px;padding:0 20px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex}.btn--primary{background:var(--amber-400);color:var(--outline);border:1px solid var(--outline);box-shadow:var(--shadow-pixel)}.btn--primary:hover{background:var(--amber-300);transform:translateY(-1px)}.btn--primary:active{box-shadow:0 1px 0 var(--outline);transform:translateY(1px)}.btn--ghost{color:inherit;opacity:.9;border:1px solid}.btn--ghost:hover{opacity:1;background:#ffffff0f}.btn--link{color:var(--ink);padding:0 4px}.btn--link:hover{text-underline-offset:3px;text-decoration:underline}.btn--sm{gap:8px;min-height:38px;padding:0 14px;font-size:14px}.btn__arrow{font-family:var(--font-mono);transition:transform .2s var(--ease-out)}.btn:hover .btn__arrow{transform:translate(3px)}.icon-btn{border-radius:var(--radius-sm);border:1px solid var(--line-strong);width:36px;height:36px;color:var(--ink);flex:none;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--paper-2)}.eyebrow{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--amber-600);align-items:center;gap:8px;font-size:12px;font-weight:500;display:inline-flex}.eyebrow__dot{background:currentColor;width:6px;height:6px}.loading{z-index:50;background:var(--navy-900);color:var(--on-dark);text-align:center;place-content:center;justify-items:center;gap:16px;padding:24px;display:grid;position:fixed;inset:0}.loading__title{text-transform:uppercase;letter-spacing:.06em;font-size:20px}.loading__bar{border:2px solid var(--cream-100);width:min(280px,80vw);height:14px;padding:2px}.loading__fill{background:repeating-linear-gradient(90deg, var(--amber-400) 0 8px, transparent 8px 10px);height:100%;transition:width .25s steps(6,end)}.loading__label{letter-spacing:.12em;text-transform:uppercase;color:var(--on-dark-muted);font-size:12px}.title{z-index:10;color:var(--on-dark);animation:fade-in .6s var(--ease-out) both;background:linear-gradient(90deg,#121523db 0%,#1215239e 38%,#12152300 72%),linear-gradient(#12152300 60%,#12152380);padding:clamp(16px,5vh,72px) clamp(20px,6vw,88px);display:flex;position:fixed;inset:0;overflow-y:auto}.title__card{gap:clamp(10px,2.2vh,18px);max-width:540px;margin-block:auto;display:grid}.title .eyebrow{color:var(--amber-400)}.title__brand{color:var(--cream-50);text-shadow:4px 4px 0 var(--outline);letter-spacing:-.01em;font-size:clamp(40px,min(8.5vw,10.5vh),96px);font-weight:700;line-height:.95}.title__name{color:var(--cream-50);gap:2px;font-size:19px;font-weight:600;display:grid}.title__field{color:var(--on-dark-muted);font-size:16px;font-weight:400}.title__lede{color:var(--cream-100);max-width:34ch;font-size:17px}.title__menu ul{gap:clamp(8px,1.2vh,10px);max-width:460px;margin-top:4px;display:grid}.choice{color:var(--cream-50);border-radius:var(--radius-sm);box-shadow:0 3px 0 var(--outline);transition:background .15s, border-color .15s, transform .15s var(--ease-out);background:#161a29c7;border:1px solid #f4eee06b;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"label go""text go";align-items:center;gap:2px 16px;padding:12px 16px 13px;text-decoration:none;display:grid}.choice:hover{border-color:var(--cream-100);background:#262d44eb;transform:translateY(-1px)}.choice:active{box-shadow:0 1px 0 var(--outline);transform:translateY(1px)}.choice__label{letter-spacing:.02em;text-transform:uppercase;grid-area:label;font-size:19px}.choice__text{color:var(--on-dark-muted);grid-area:text;font-size:14.5px}.choice__go{transition:transform .2s var(--ease-out);grid-area:go;font-size:18px}.choice:hover .choice__go{transform:translate(3px)}.choice--primary{color:var(--outline);background:var(--amber-400);border-color:var(--outline)}.choice--primary:hover{background:var(--amber-300);border-color:var(--outline)}.choice--primary .choice__text{color:var(--navy-700)}.choice--world{border-color:var(--amber-400)}.choice--world .choice__label,.choice--world .choice__go{color:var(--amber-300)}.choice--world:hover{border-color:var(--amber-300)}.title__controls{color:var(--on-dark-muted);letter-spacing:.04em;font-size:12px}@media (width<=640px){.title{background:linear-gradient(#1215231a 0%,#121523cc 45%,#121523f0 100%)}.title__card{gap:14px;margin-block:auto 0}.title__lede{font-size:15.5px}.title__menu ul{max-width:none}}@media (height<=820px){.choice{padding-block:10px 11px}}@media (width<=380px){.title__brand{font-size:40px}.title__name{font-size:17px}.title__lede{font-size:14.5px}.choice{grid-template-columns:minmax(0,1fr);padding:10px 12px 11px}.choice__label{font-size:17px}.choice__text{font-size:13.5px}.choice__go{display:none}}.topbar{z-index:20;height:var(--topbar-h);border-radius:var(--radius);color:var(--on-dark);animation:drop-in .5s var(--ease-out) both;background:#161a29e6;border:1px solid #f4eee01f;align-items:center;gap:16px;padding:0 8px 0 12px;display:flex;position:fixed;top:10px;left:10px;right:10px}.brand{flex:none;align-items:center;gap:10px;min-width:0;text-decoration:none;display:flex}.brand__mark{background:linear-gradient(var(--amber-400), var(--amber-400)) 6px 6px / 10px 10px no-repeat, var(--teal-600);border:2px solid var(--cream-100);width:22px;height:22px;box-shadow:2px 2px 0 var(--outline);flex:none}.brand__text{line-height:1.1;display:grid}.brand__name{color:var(--cream-50);font-size:17px}.brand__sub{color:var(--on-dark-muted);font-size:11.5px}.topnav{flex:1;justify-content:center;display:flex}.topnav ul{gap:2px;display:flex}.topnav__link{border-radius:var(--radius-sm);color:var(--on-dark-muted);padding:8px 12px;font-size:14px;font-weight:500;transition:color .15s,background-color .15s;position:relative}.topnav__link:hover{color:var(--cream-50);background:#f4eee012}.topnav__link[aria-current=page]{color:var(--cream-50)}.topnav__link[aria-current=page]:after{content:"";background:var(--amber-400);height:2px;position:absolute;bottom:2px;left:12px;right:12px}.topbar__tools{gap:4px;margin-left:auto;display:flex}.tool{border-radius:var(--radius-sm);height:38px;color:var(--on-dark-muted);align-items:center;gap:6px;padding:0 10px;font-size:13px;font-weight:500;text-decoration:none;display:inline-flex}.tool:hover{color:var(--cream-50);background:#f4eee012}.tool--menu{display:none}.mobile-menu{border-radius:var(--radius);animation:drop-in .25s var(--ease-out) both;background:#161a29f7;border:1px solid #f4eee01f;padding:8px;position:absolute;top:calc(100% + 8px);left:0;right:0}.mobile-menu button,.mobile-menu a{text-align:left;border-radius:var(--radius-sm);width:100%;padding:12px;font-size:16px;font-weight:500;text-decoration:none;display:block}.mobile-menu button:hover,.mobile-menu a:hover{background:#f4eee012}@media (width<=1040px){.topnav{display:none}.tool--menu{display:inline-flex}}@media (width<=560px){.topbar{gap:8px;top:8px;left:8px;right:8px}.brand__sub,.tool__label,.tool--hide-sm{display:none}.brand__name{font-size:15px}}.prompt-anchor,.bubble-anchor{z-index:5;will-change:transform;pointer-events:none;position:absolute;top:0;left:0;transform:translate(-9999px,-9999px)}.prompt{white-space:nowrap;background:var(--cream-50);color:var(--ink);border:1px solid var(--outline);border-radius:var(--radius-sm);box-shadow:var(--shadow-pixel);pointer-events:auto;animation:prompt-in .22s var(--ease-out) both;align-items:center;gap:8px;padding:6px 12px 6px 6px;font-size:13.5px;font-weight:600;display:inline-flex;position:absolute;bottom:0;left:0;transform:translate(-50%)}.prompt:hover{background:#fff}.prompt__key{background:var(--navy-700);width:22px;height:22px;color:var(--cream-50);box-shadow:inset 0 -2px 0 var(--outline);border-radius:4px;place-items:center;font-size:12px;font-weight:500;display:inline-grid}.bubble{background:var(--cream-50);width:max-content;max-width:240px;color:var(--ink);border:1px solid var(--outline);border-radius:var(--radius-sm);box-shadow:var(--shadow-pixel);animation:prompt-in .22s var(--ease-out) both;padding:8px 12px;font-size:14px;line-height:1.4;position:absolute;bottom:8px;left:0;transform:translate(-50%)}.bubble:after{content:"";background:var(--cream-50);border-right:1px solid var(--outline);border-bottom:1px solid var(--outline);width:10px;height:10px;position:absolute;bottom:-6px;left:50%;transform:translate(-50%)rotate(45deg)}.bubble__role{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--amber-600);font-size:11px;display:block}.hint{left:50%;bottom:max(20px, env(safe-area-inset-bottom));z-index:6;border-radius:var(--radius);max-width:calc(100vw - 32px);color:var(--on-dark-muted);white-space:nowrap;transition:opacity .6s, transform .6s var(--ease-out);animation:rise-in .6s .4s var(--ease-out) both;pointer-events:none;background:#161a29e6;border:1px solid #f4eee01f;align-items:center;gap:12px;padding:9px 16px;font-size:13px;display:flex;position:fixed;transform:translate(-50%)}.hint--hidden{opacity:0;transform:translate(-50%,12px)}.hint__label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--amber-400);font-size:11px}.hint__sep{background:#f4eee033;width:1px;height:14px}.hint kbd{min-width:20px;height:20px;color:var(--cream-50);border:1px solid #f4eee04d;border-bottom-width:2px;border-radius:4px;place-items:center;margin-right:2px;padding:0 4px;font-size:11px;display:inline-grid}.hint>span{white-space:nowrap}@media (width<=720px){.hint{text-align:center;flex-wrap:wrap;justify-content:center;row-gap:4px}.hint__sep{display:none}.hint__label{flex-basis:100%}}@media (hover:none) and (pointer:coarse){.hint{bottom:160px}}.joystick{left:max(20px, env(safe-area-inset-left));bottom:max(24px, env(safe-area-inset-bottom));z-index:6;touch-action:none;background:#161a2973;border:2px solid #f4eee059;border-radius:50%;place-items:center;width:120px;height:120px;display:grid;position:fixed}.joystick__knob{background:var(--cream-50);border:2px solid var(--outline);width:50px;height:50px;box-shadow:var(--shadow-pixel);border-radius:50%}.map{border:1px solid var(--outline);border-radius:var(--radius);background:var(--paper);width:min(1040px,100vw - 24px);max-height:calc(100dvh - 24px);color:var(--ink);padding:0;overflow:hidden;box-shadow:0 20px 60px #00000059}.map[open]{animation:pop-in .25s var(--ease-out) both}.map::backdrop{background:#1012208c}.map__inner{flex-direction:column;max-height:calc(100dvh - 26px);display:flex}.map__head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 20px 14px;display:flex}.map__title{letter-spacing:-.01em;font-size:22px}.map__layout{grid-template-columns:minmax(0,1fr) 260px;min-height:0;display:grid;overflow:auto}.map__frame{border:1px solid var(--outline);background:var(--navy-800);align-self:start;margin:16px;line-height:0;position:relative}.map__img-host canvas{width:100%;height:auto;image-rendering:pixelated;display:block}.map__pin{background:var(--cream-50);border:1px solid var(--outline);box-shadow:0 1px 0 var(--outline);white-space:nowrap;border-radius:4px;align-items:center;gap:6px;padding:3px 8px 3px 6px;font-size:11.5px;font-weight:600;line-height:1.2;display:inline-flex;position:absolute;transform:translate(-50%,-50%)}.map__pin:before{content:"";background:var(--amber-400);border:1px solid var(--outline);width:6px;height:6px}.map__pin.is-visited:before{background:var(--teal-600)}.map__pin:hover{z-index:2;background:#fff}.map__you{background:var(--cyan-400);border:2px solid var(--outline);border-radius:50%;width:12px;height:12px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 4px #6cbfcd59}.map__list{align-content:start;gap:2px;padding:12px 12px 16px 0;display:grid}.map__list button{text-align:left;border-radius:var(--radius-sm);grid-template-columns:1fr auto;gap:0 8px;width:100%;padding:9px 12px;display:grid}.map__list button:hover{background:var(--paper-2)}.map__list-place{font-size:14.5px;font-weight:600}.map__list-topic{color:var(--muted);grid-column:1;font-size:13px}.map__visited{letter-spacing:.08em;text-transform:uppercase;color:var(--teal-600);grid-area:1/2/span 2;align-self:center;font-size:10.5px}@media (width<=760px){.map__layout{grid-template-columns:1fr}.map__pin span{display:none}.map__pin{padding:4px}.map__list{padding:0 12px 16px}}@keyframes fade-in{0%{opacity:0}}@keyframes drop-in{0%{opacity:0;transform:translateY(-10px)}}@keyframes rise-in{0%{opacity:0;transform:translate(-50%,10px)}}@keyframes prompt-in{0%{opacity:0;transform:translate(-50%,6px)}}@keyframes pop-in{0%{opacity:0;transform:scale(.98)translateY(8px)}}.panel{width:min(580px,100vw);max-width:100vw;height:100dvh;max-height:100dvh;color:var(--ink);background:0 0;border:0;margin:0;padding:0;position:fixed;inset:0 0 0 auto;overflow:visible}.panel::backdrop{background:#1012204d;animation:.25s both fade-in}.panel[open] .panel__inner{animation:panel-in .36s var(--ease-out) both}.panel--closing .panel__inner{animation:.18s ease-in both panel-out!important}.panel--closing::backdrop{opacity:0;transition:opacity .18s}.panel__inner{background:var(--paper);border-left:1px solid var(--outline);flex-direction:column;height:100%;display:flex;box-shadow:-18px 0 50px #0a0c1847}.panel__scroll{overscroll-behavior:contain;flex:1;overflow-y:auto}.panel__media{background:var(--navy-800);border-bottom:1px solid var(--outline);position:relative}.vignette{aspect-ratio:240/84;width:100%;height:auto;image-rendering:pixelated;display:block}.panel__close{border-radius:var(--radius-sm);background:var(--cream-50);border:1px solid var(--outline);width:38px;height:38px;box-shadow:var(--shadow-pixel);color:var(--ink);place-items:center;display:grid;position:absolute;top:12px;right:12px}.panel__close:hover{background:#fff}.panel__head{gap:10px;padding:26px 32px 8px;display:grid}.panel__title{letter-spacing:-.02em;outline:none;font-size:clamp(26px,4vw,32px);font-weight:700;line-height:1.15}.panel__desc{color:var(--ink-2);max-width:46ch;font-size:16.5px}.panel__body{padding:18px 32px 36px}.panel__foot{padding:12px 24px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--paper);justify-content:space-between;align-items:center;gap:12px;display:flex}.panel__foot .btn--ghost{color:var(--ink);border-color:var(--line-strong)}.panel__foot kbd{border:1px solid var(--line-strong);color:var(--muted);border-radius:4px;padding:1px 5px;font-size:11px}@media (width<=700px){.panel{width:100vw;height:92dvh;inset:auto 0 0}.panel__inner{border-left:0;border-top:1px solid var(--outline);border-radius:14px 14px 0 0;overflow:hidden}.panel[open] .panel__inner{animation-name:sheet-in}.panel--closing .panel__inner{animation-name:sheet-out!important}.panel__head{padding:22px 20px 6px}.panel__body{padding:16px 20px 28px}.panel__foot{padding-inline:12px}.panel__foot kbd{display:none}}@keyframes panel-in{0%{opacity:0;transform:translate(28px)}}@keyframes panel-out{to{opacity:0;transform:translate(28px)}}@keyframes sheet-in{0%{opacity:0;transform:translateY(40px)}}@keyframes sheet-out{to{opacity:0;transform:translateY(40px)}}.label-heading{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;font-size:11.5px;font-weight:500}.skill-groups{gap:24px;display:grid}.tags{flex-wrap:wrap;gap:6px;display:flex}.tag{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:#fffdf8;padding:5px 11px;font-size:14px;font-weight:500;line-height:1.35}.skill-group__desc{color:var(--ink-2);margin:-4px 0 10px;font-size:14.5px;line-height:1.55}.tools{border-top:1px solid var(--line);margin-top:30px;padding-top:22px}.tools__list{gap:8px;display:grid}.tools__list>div{grid-template-columns:minmax(0,11rem) minmax(0,1fr);gap:2px 16px;display:grid}.tools__list dt{color:var(--ink);font-size:13.5px;font-weight:600}.tools__list dd{color:var(--ink-2);font-size:14px;line-height:1.5}@media (width<=520px){.tools__list>div{grid-template-columns:1fr}}.visit{border-top:1px solid var(--line);margin-top:30px;padding-top:22px}.visit__links{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--outline);border-radius:var(--radius-sm);background:var(--cream-50);box-shadow:0 1px 0 var(--outline);align-items:center;gap:6px;padding:8px 12px;font-size:14px;font-weight:600;display:inline-flex}.chip:hover{background:#fff}.facts{background:var(--line);border:1px solid var(--line);border-radius:var(--radius-sm);grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-bottom:24px;display:grid;overflow:hidden}.facts>div{background:var(--paper);padding:12px 14px}.facts dt,.record dt{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:11px}.facts dd{margin-top:2px;font-size:14.5px;font-weight:600;line-height:1.35}@media (width<=520px){.facts{grid-template-columns:1fr}}.prose{color:var(--ink-2);gap:14px;font-size:16px;line-height:1.7;display:grid}.prose p:first-child{color:var(--ink);font-size:17.5px;line-height:1.6}.record{border-top:1px solid var(--line);display:grid}.record>div{border-bottom:1px solid var(--line);gap:4px;padding:16px 0;display:grid}.record dd{letter-spacing:-.01em;font-size:19px;font-weight:600}.record__after{margin-top:24px}.process{border-top:1px solid var(--line);margin-top:30px;padding-top:22px}.guide__section .process{border-top:0;margin-top:0;padding-top:0}.process__title{letter-spacing:-.01em;font-size:19px;font-weight:650}.process__flow{letter-spacing:.04em;color:var(--amber-600);margin-top:4px;font-size:12.5px}.process__intro{color:var(--ink-2);margin:12px 0 16px;font-size:16px;line-height:1.65}.process__stages{border-top:1px solid var(--line);display:grid}.process__stage{border-bottom:1px solid var(--line);grid-template-columns:2.25rem minmax(0,1fr);grid-template-areas:"num name""num text";gap:2px 8px;padding:12px 0;display:grid}.process__num{color:var(--amber-600);grid-area:num;padding-top:2px;font-size:12.5px}.process__name{grid-area:name;font-size:16px;font-weight:650}.process__text{color:var(--ink-2);grid-area:text;font-size:14.5px;line-height:1.5}.project-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:28px 24px;display:grid}.project-card{align-content:start;gap:6px;display:grid}.project-card__media{border:1px solid var(--outline);border-radius:var(--radius-sm);background:var(--navy-800);margin-bottom:8px;overflow:hidden}.project-card__media img{aspect-ratio:16/9;object-fit:cover;width:100%;height:auto}.project-card__meta{letter-spacing:.1em;text-transform:uppercase;color:var(--amber-600);font-size:12px}.project-card__title{letter-spacing:-.015em;font-size:22px}.project-card__subtitle{color:var(--ink-2);margin-top:-4px;font-size:15px;font-weight:600}.project-card__desc{color:var(--ink-2);margin-bottom:6px}.project-card .btn{justify-self:start;margin-top:10px}.panel__aside{color:var(--ink-2);border-top:1px solid var(--line);margin-top:28px;padding-top:18px;font-size:14.5px}.panel__aside a{color:var(--ink);font-weight:600}.languages{border-top:1px solid var(--line);display:grid}.language{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;grid-template-areas:"greet level""name level";align-items:center;gap:0 12px;padding:14px 0;display:grid}.language__greeting{color:var(--amber-600);grid-area:greet;font-size:13px}.language__name{letter-spacing:-.01em;grid-area:name;font-size:19px;font-weight:650}.language__level{border:1px solid var(--line-strong);background:#fffdf8;border-radius:999px;grid-area:level;padding:4px 10px;font-size:13.5px;font-weight:600}.contact{gap:8px;display:grid}.contact__intro{color:var(--ink-2);margin-bottom:10px}.contact__row{border:1px solid var(--line-strong);border-radius:var(--radius);color:var(--ink);background:#fffdf8;grid-template-columns:36px 1fr auto;align-items:center;gap:12px;padding:12px 14px;text-decoration:none;display:grid}a.contact__row:hover{border-color:var(--outline);box-shadow:0 1px 0 var(--outline)}.contact__row--primary{border-color:var(--outline);box-shadow:var(--shadow-pixel)}.contact__row>svg:first-child{justify-self:center}.contact__glyph{justify-self:center;font-size:13px;font-weight:600}.contact__label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:11px;display:block}.contact__value{overflow-wrap:anywhere;font-size:15.5px;font-weight:600;text-decoration:none;display:block}a.contact__value:hover{text-underline-offset:3px;text-decoration:underline}.contact__loc{color:var(--muted);align-items:center;gap:8px;margin-top:8px;font-size:14px;display:flex}.guide{background:var(--paper);min-height:100dvh;color:var(--ink)}.guide__bar{z-index:10;background:var(--navy-800);color:var(--on-dark);align-items:center;gap:20px;padding:10px clamp(16px,4vw,40px);display:flex;position:sticky;top:0}.guide__nav{flex:1;justify-content:center;display:flex}.guide__nav ul{flex-wrap:wrap;gap:2px;display:flex}.guide__nav a{color:var(--on-dark-muted);border-radius:var(--radius-sm);padding:8px 10px;font-size:14px;font-weight:500;text-decoration:none;display:block}.guide__nav a:hover{color:var(--cream-50);background:#f4eee012}@media (width<=1020px){.guide__nav{display:none}.guide__bar{justify-content:space-between}}.guide__main{max-width:760px;margin:0 auto;padding:0 clamp(16px,5vw,24px) 64px}.guide__intro{border-bottom:1px solid var(--line);gap:10px;padding:72px 0 40px;display:grid}.guide__intro h1{letter-spacing:-.03em;outline:none;font-size:clamp(36px,7vw,56px);line-height:1.05}.guide__field{color:var(--ink-2);font-size:19px}.guide__section{border-bottom:1px solid var(--line);padding:48px 0;scroll-margin-top:70px}.guide__section>h2{font-size:13px;font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--amber-600);margin-bottom:22px;font-weight:500}.guide__section .skill-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 32px}@media (width<=620px){.guide__section .skill-groups{grid-template-columns:1fr}}.guide__subtitle{max-width:52ch;color:var(--muted);font-size:16.5px;line-height:1.6}.guide__footer{max-width:760px;color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:12px;margin:0 auto;padding:24px clamp(16px,5vw,24px) 48px;font-size:14px;display:flex}.guide__footer a{color:var(--ink);font-weight:600}.brand--dark .brand__name{color:var(--cream-50)}.guide__note{color:var(--ink-2);margin:-8px 0 22px}.case{background:var(--paper);min-height:100dvh;color:var(--ink)}.case__bar{justify-content:space-between}.case__bar .btn{color:var(--on-dark);gap:6px}.case__main{max-width:1040px;margin:0 auto;padding:0 clamp(16px,5vw,32px) 32px}.case__footer{max-width:1040px;padding-inline:clamp(16px,5vw,32px)}.case__hero{gap:12px;max-width:760px;padding:64px 0 36px;display:grid}.case__title{letter-spacing:-.03em;outline:none;font-size:clamp(38px,7vw,60px);line-height:1.02}.case__subtitle{color:var(--ink-2);font-size:clamp(18px,2.4vw,21px);font-weight:600}.case__summary{max-width:60ch;color:var(--ink-2);font-size:17px;line-height:1.65}.case__facts{background:var(--line);border:1px solid var(--line);border-radius:var(--radius-sm);grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:12px;display:grid;overflow:hidden}.case__facts>div{background:var(--paper);padding:12px 14px}.case__facts dt,.case__record dt,.case__stats dt,.case__example dt,.case__tech dt{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:11px}.case__facts dd{margin-top:4px;font-size:14.5px;font-weight:600;line-height:1.45}.case__actions{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}.case__actions .btn{gap:6px}.case__actions .btn--ghost{color:var(--ink)}.case__availability{max-width:60ch;color:var(--muted);border-left:2px solid var(--amber-400);margin-top:4px;padding-left:12px;font-size:14.5px}.case figure{margin:0}.case__cover{border:1px solid var(--outline);border-radius:var(--radius-sm);background:var(--navy-800);overflow:hidden}.case__cover img{aspect-ratio:16/9;object-fit:cover;width:100%;height:auto}.case__toc{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:36px;padding:18px 0}.case__toc ol{counter-reset:toc;flex-wrap:wrap;gap:4px 18px;display:flex}.case__toc li{counter-increment:toc}.case__toc a{color:var(--ink-2);padding:3px 0;font-size:14px;font-weight:500;text-decoration:none;display:inline-block}.case__toc a:before{content:counter(toc, decimal-leading-zero) " ";font-family:var(--font-mono);color:var(--amber-600);font-size:11.5px}.case__toc a:hover{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.case__section{border-bottom:1px solid var(--line);padding:56px 0;scroll-margin-top:60px}.case__index{letter-spacing:.1em;color:var(--amber-600);font-size:12px}.case__section>h2{letter-spacing:-.02em;margin:4px 0 20px;font-size:clamp(24px,3.4vw,30px);line-height:1.15}.case__section h3{font-size:16px;font-weight:650}.case__section h3.label-heading{font-size:11.5px;font-weight:500}.case__prose{max-width:68ch;color:var(--ink-2);gap:14px;font-size:16px;line-height:1.7;display:grid}.case__lead{color:var(--ink);margin-bottom:18px;font-size:19px;font-weight:600}.case__note{max-width:68ch;color:var(--muted);margin-top:14px;font-size:14px;line-height:1.6}.case__sub{margin-top:28px}.case__questions{border-top:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));display:grid}.case__questions li{border-bottom:1px solid var(--line);padding:12px 0;font-size:16.5px;font-weight:600}.case__badge{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border:1px dashed var(--line-strong);border-radius:4px;margin-bottom:16px;padding:3px 8px;font-size:11px;display:inline-block}.case__record{border-top:1px solid var(--line);max-width:760px;display:grid}.case__record>div{border-bottom:1px solid var(--line);grid-template-columns:10rem minmax(0,1fr);gap:4px 20px;padding:14px 0;display:grid}.case__record dt{padding-top:3px}.case__record dd{font-size:16px;font-weight:500}.case__quote{letter-spacing:-.01em;border-left:3px solid var(--amber-400);max-width:44ch;margin-top:24px;padding-left:16px;font-size:20px;font-weight:600;line-height:1.4}.case__columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 40px;display:grid}.case__columns--3{grid-template-columns:repeat(3,minmax(0,1fr))}.case__list ul{border-top:1px solid var(--line)}.case__list li{border-bottom:1px solid var(--line);padding:9px 0;font-size:15px}.case__list--muted li{color:var(--muted)}.case__section>.case__list{margin-top:32px}.case__section>.case__list ul{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));column-gap:40px;display:grid}.case__stages{grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;display:grid}.case__stages li,.case__arch-box,.case__node{border:1px solid var(--outline);border-radius:var(--radius-sm);box-shadow:0 2px 0 var(--outline);background:#fffdf8;align-content:start;gap:3px;padding:12px 14px;display:grid;position:relative}.case__stages li+li:before{content:"→";font-family:var(--font-mono);color:var(--muted);position:absolute;top:50%;left:-22px;transform:translateY(-50%)}.case__stages li:nth-child(4n+1):before{content:none}.case__stage-name{letter-spacing:.1em;text-transform:uppercase;color:var(--amber-600);font-size:13px;font-weight:500}.case__stage-page{color:var(--ink-2);font-size:14px}.case__steps{justify-items:start;gap:22px;margin-top:36px;display:grid}.case__steps li{border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:6px 12px;font-size:15px;font-weight:500;position:relative}.case__steps li+li:before{content:"↓";font-family:var(--font-mono);color:var(--muted);font-size:13px;position:absolute;top:-21px;left:18px}.case .case__figure{margin-top:32px}.case__figure img,.case__gallery img{border:1px solid var(--line-strong);border-radius:var(--radius-sm);width:100%;height:auto}.case__figure figcaption{max-width:76ch;color:var(--muted);margin-top:12px;font-size:14px;line-height:1.55}.case__figure figcaption strong{color:var(--ink)}.case__annotations{counter-reset:note;gap:4px;margin-top:10px;display:grid}.case__annotations li{counter-increment:note;grid-template-columns:1.75rem minmax(0,1fr);display:grid}.case__annotations li:before{content:counter(note);font-family:var(--font-mono);color:var(--amber-600);font-size:12px}.case__gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:28px;display:grid}.case__gallery figcaption{font-family:var(--font-mono);color:var(--muted);margin-top:6px;font-size:12px}.case__diagram{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:24px}.case__tree,.case__tree ul{gap:12px;display:grid}.case__tree ul{border-left:1px solid var(--line-strong);margin:12px 0 0 22px;padding-left:22px}.case__tree ul>li{position:relative}.case__tree ul>li:before{content:"";border-top:1px solid var(--line-strong);width:20px;position:absolute;top:22px;left:-22px}.case__node{justify-self:start;max-width:100%;padding:8px 12px;display:inline-grid}.case__node-label{font-weight:650}.case__node-note{color:var(--muted);font-size:13px}.case__notes{gap:10px;max-width:72ch;margin-top:24px;display:grid}.case__notes li{color:var(--ink-2);padding-left:18px;line-height:1.6;position:relative}.case__notes li:before{content:"";background:var(--amber-400);border:1px solid var(--outline);width:7px;height:7px;position:absolute;top:.62em;left:0}.case__arch{gap:26px;max-width:620px;display:grid}.case__arch-row{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:14px;display:grid;position:relative}.case__arch-row+.case__arch-row:before{content:"↓";font-family:var(--font-mono);color:var(--muted);font-size:13px;position:absolute;top:-24px;left:50%;transform:translate(-50%)}.case__arch-row--split:before{left:25%}.case__arch-row--split:after{content:"↓";font-family:var(--font-mono);color:var(--muted);font-size:13px;position:absolute;top:-24px;left:75%;transform:translate(-50%)}.case__arch-row--split+.case__arch-row:before{left:75%}.case__arch-name{font-weight:650}.case__arch-detail{color:var(--muted);font-size:13.5px;line-height:1.45}.case__items{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px;display:grid}.case__items>div{border-bottom:1px solid var(--line);align-content:start;gap:6px;padding:18px 0;display:grid}.case__items p{color:var(--ink-2);font-size:15px;line-height:1.65}.case__formula{background:var(--navy-800);max-width:620px;color:var(--cream-100);border:1px solid var(--outline);border-radius:var(--radius-sm);box-shadow:0 2px 0 var(--outline);gap:6px;margin-bottom:28px;padding:18px 20px;display:grid}.case__formula p{grid-template-columns:1.5rem minmax(0,1fr);font-size:15px;display:grid}.case__op{color:var(--amber-400)}.case__formula-result{color:var(--cream-50);border-top:1px solid #f4eee033;margin-top:6px;padding-top:10px;font-weight:650}.case__table-wrap{margin-top:28px}.case__table{border-collapse:collapse;width:100%;font-size:15px}.case__table caption{text-align:left}.case__table th,.case__table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:11px 12px 11px 0}.case__table thead th{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border-bottom-color:var(--line-strong);font-size:11px;font-weight:500}.case__table td{color:var(--ink-2)}.case__example{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:#fffdf8;max-width:620px;margin-top:28px;padding:18px 20px}.case__example dl{border-top:1px solid var(--line);grid-template-columns:minmax(min-content,max-content) minmax(40%,1fr);column-gap:20px;display:grid}.case__example dl>div{grid-column:1/-1;grid-template-columns:subgrid;border-bottom:1px solid var(--line);align-items:baseline;row-gap:4px;padding:9px 0;display:grid}@supports not (grid-template-columns:subgrid){.case__example dl>div{grid-template-columns:minmax(min-content,11rem) minmax(0,1fr);column-gap:20px}}.case__example dt{font-family:var(--font-sans);letter-spacing:0;text-transform:none;color:var(--ink-2);font-size:14.5px}.case__example dd{font-variant-numeric:tabular-nums;font-size:14.5px;font-weight:600}.case__stats{background:var(--line);border:1px solid var(--line);border-radius:var(--radius-sm);grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.case__stats>div{background:var(--paper);flex-direction:column-reverse;justify-content:flex-end;gap:4px;padding:16px;display:flex}.case__stats dd{letter-spacing:-.02em;font-size:34px;font-weight:650;line-height:1}.case__checks{flex-wrap:wrap;gap:8px 20px;margin-top:14px;font-size:14.5px;font-weight:500;display:flex}.case__checks li{align-items:center;gap:6px;display:inline-flex}.case__checks svg{color:var(--green-600)}.case__layers-list{counter-reset:layer;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:32px;display:grid}.case__layers-list li{counter-increment:layer;border-top:2px solid var(--outline);align-content:start;gap:6px;padding-top:12px;display:grid}.case__layers-list h3:before{content:counter(layer, decimal-leading-zero) "  ";font-family:var(--font-mono);color:var(--amber-600);font-size:12px;font-weight:500}.case__layers-list p{color:var(--ink-2);font-size:14px;line-height:1.6}.case__findings{border-top:1px solid var(--line);display:grid}.case__findings li{border-bottom:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 40px;padding:14px 0;display:grid}.case__findings p{color:var(--ink-2);align-content:start;gap:2px;font-size:15px;line-height:1.55;display:grid}.case__finding-label{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:11px}.case__findings p+p .case__finding-label{color:var(--green-600)}.case__tech{border-top:1px solid var(--line);display:grid}.case__tech>div{border-bottom:1px solid var(--line);grid-template-columns:10rem minmax(0,1fr);align-items:center;gap:8px 20px;padding:14px 0;display:grid}.case__end{border-bottom:0}.case__end .case__actions+.case__availability{margin-top:16px}.case__end .case__back{color:var(--ink);gap:6px;margin-top:22px}@media (width<=900px){.case__stages,.case__layers-list{grid-template-columns:repeat(2,minmax(0,1fr))}.case__stages li:nth-child(odd):before{content:none}.case__stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=700px){.case__hero{padding-top:40px}.case__facts,.case__columns,.case__columns--3,.case__items,.case__findings li,.case__gallery{grid-template-columns:1fr}.case__section{padding:44px 0}.case__record>div,.case__tech>div{grid-template-columns:1fr}.case__arch-row{grid-auto-flow:row;gap:8px}.case__arch-row--split:before,.case__arch-row--split+.case__arch-row:before{left:50%}.case__arch-row--split:after{content:none}.case__findings li{gap:10px}}@media (width<=400px){.case__bar .brand__text{display:none}}@media (width<=560px){.case__stages,.case__layers-list{grid-template-columns:1fr;gap:22px}.case__stages li+li:before{content:none}.case__stages li+li:after{content:"↓";font-family:var(--font-mono);color:var(--muted);font-size:13px;position:absolute;top:-21px;left:18px}.case__diagram{padding:16px 14px}.case__tree ul{margin-left:10px;padding-left:14px}.case__tree ul>li:before{width:12px;left:-14px}.case__table thead{display:none}.case__table caption,.case__table,.case__table tbody,.case__table tr,.case__table th,.case__table td{display:block}.case__table tr{border-bottom:1px solid var(--line);padding:12px 0}.case__table th,.case__table td{border:0;padding:2px 0}.case__table td:nth-child(2){color:var(--muted);font-size:14px}.case__example dl,.case__example dl>div{grid-template-columns:1fr}.case__stats dd{font-size:28px}}.apps__nav{gap:4px;display:flex}.apps__nav a{color:var(--on-dark-muted);border-radius:var(--radius-sm);padding:8px 10px;font-size:14px;font-weight:500;text-decoration:none}.apps__nav a:hover{color:var(--cream-50);background:#f4eee012}.apps__hero{padding-bottom:28px}.case__summary a{color:var(--ink);font-weight:600}.apps__list{border-top:1px solid var(--line);display:grid}.app{border-bottom:1px solid var(--line);gap:18px;padding:32px 0 40px;scroll-margin-top:60px;display:grid}.app__head{grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:4px 18px;display:grid}.app__icon{width:64px;height:64px}.app__id{gap:2px;display:grid}.app__name{letter-spacing:-.015em;font-size:26px;line-height:1.1}.app__tagline{color:var(--ink-2);font-size:16px;font-weight:500}.app__meta{letter-spacing:.02em;color:var(--muted);margin-top:2px;font-size:12.5px}.app__status{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border:1px dashed var(--line-strong);white-space:nowrap;border-radius:4px;align-self:start;padding:3px 8px;font-size:11px}.app__status--available{color:var(--green-600);border-style:solid;border-color:currentColor}.app__body{max-width:68ch;color:var(--ink-2);gap:12px;font-size:16px;line-height:1.7;display:grid}.app__body .tags{margin-top:4px}.app__summary{max-width:68ch;color:var(--ink-2)}.app__actions{flex-wrap:wrap;gap:10px;display:flex}.app__actions .btn{gap:7px}.app__actions .btn--ghost{color:var(--ink)}.app__requirements{color:var(--muted);margin-top:-8px;font-size:13.5px}.app__notes{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius-sm);max-width:68ch;padding:16px 18px}.app__notes ol{color:var(--ink-2);gap:6px;padding-left:1.25em;font-size:14.5px;line-height:1.6;list-style:decimal;display:grid}.app__checksum{color:var(--muted);margin-top:12px;font-size:13.5px}.app__checksum summary{cursor:pointer;color:var(--ink-2);font-weight:600}.app__checksum p{margin-top:8px}.app__checksum code{overflow-wrap:anywhere;color:var(--ink);margin-top:4px;font-size:12.5px;display:block}.app__shot img{border:1px solid var(--line-strong);border-radius:var(--radius-sm);width:100%;height:auto}.app__shot figcaption{color:var(--muted);margin-top:8px;font-size:13.5px}.app--compact{border:0;gap:14px;padding:0}.app--compact+.app--compact{border-top:1px solid var(--line);margin-top:28px;padding-top:28px}@media (width<=560px){.app__head{grid-template-columns:52px minmax(0,1fr)}.app__icon{width:52px;height:52px}.app__status{grid-column:1/-1;justify-self:start;margin-top:6px}.apps__nav a{padding:8px 6px;font-size:13px}}
