@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-wght-normal-CnvboYUG.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-wght-normal-Ca2vKHc0.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-wght-normal-ukD16Tqj.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-wght-italic-BicUS2cM.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-wght-italic-BfTTTDIL.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-wght-italic-Py8at3oI.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--serif:"Fraunces Variable", Georgia, "Times New Roman", serif;--paper:#ead9b0;--ink:#2c2620;--night:#120d0a}html,body,#root{background:var(--night);height:100%;font-family:var(--serif);margin:0;overflow:hidden}#root canvas{touch-action:none;display:block}.html-layer{pointer-events:none;position:fixed;inset:0}.project-page{box-sizing:border-box;color:var(--ink);font:14px/1.5 var(--serif);-webkit-user-select:text;user-select:text;padding:26px 30px;overflow:hidden}.project-page__body{flex-direction:column;height:100%;display:flex}.project-page h1{margin:14px 0 4px;font-size:26px;font-weight:600;line-height:1.15}.project-page p{margin:0 0 12px}.project-page__tagline{color:#5c5145;font-size:15px;font-style:italic}.project-page__back{color:#7a6a58;font:inherit;cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:0;font-size:12px}.project-page__back:hover,.project-page__back:focus-visible{color:#2c2620;text-decoration:underline}.project-page__chips,.project-page__links{flex-wrap:wrap;gap:6px;margin:0 0 12px;padding:0;list-style:none;display:flex}.project-page__chips li{border:1px solid #b9ab94;border-radius:999px;padding:1px 9px;font-size:12px}.project-page__status{color:#5c5145;align-items:center;gap:7px;font-size:12px;display:flex}.project-page__dot{border-radius:50%;width:8px;height:8px}.project-page__dot--live{background:#4f9e5b}.project-page__dot--wip{background:#c9962a}.project-page__dot--idea{background:#6f8fd6}.project-page__links{margin-top:auto}.project-page__links a{color:#2c2620}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.corner{align-items:center;gap:10px;display:flex;position:fixed;bottom:14px;left:16px}.vibe-button,.zoom-controls button{color:#f3e6c4;min-height:32px;font:13px/1.4 var(--serif);cursor:pointer;background:#120d0adb;border:1px solid #f3e6c499;border-radius:999px;padding:5px 14px;transition:background .2s,border-color .2s}.zoom-controls{gap:6px;display:flex}.zoom-controls button{min-width:32px;padding:5px 10px}.zoom-controls button:disabled{opacity:.4;cursor:default}.zoom-controls button:not(:disabled):hover,.zoom-controls button:focus-visible,.vibe-button:hover,.vibe-button:focus-visible{background:#120d0a;border-color:#f3e6c4}.vibe-button:focus-visible,.zoom-controls button:focus-visible,.row-pager button:focus-visible,.project-nav button:focus-visible,.project-page button:focus-visible,.project-page a:focus-visible,.chooser button:focus-visible{outline-offset:3px;outline:2px solid #f2c879}html[data-input=pointer] :focus-visible{outline:none}html[data-input=pointer] .project-page__back:focus-visible:not(:hover){color:#7a6a58;text-decoration:none}.chooser{box-sizing:border-box;background:var(--paper) url(/textures/paper.webp) center / cover;width:min(880px,100vw - 32px);max-height:calc(100vh - 32px);color:var(--ink);font-family:var(--serif);text-align:center;border:1px solid #c9b385;border-radius:6px;padding:34px 38px 30px;box-shadow:0 30px 80px #0009}.chooser::backdrop{background:radial-gradient(at 50% 40%,#2e1e12b8,#080605e6)}.chooser h1{letter-spacing:-.01em;margin:0;font-size:34px;font-weight:600}.chooser__lede{color:#6a5a45;margin:6px 0 24px;font-style:italic}.chooser__grid{grid-template-columns:repeat(2,1fr);gap:18px;margin:0;padding:0;list-style:none;display:grid}.chooser__card{width:100%;color:inherit;font:600 18px/1.3 var(--serif);cursor:pointer;background:#fffaeb8c;border:1px solid #c9b385;border-radius:4px;padding:6px 6px 10px;transition:transform .2s,box-shadow .2s,border-color .2s;display:block}.chooser__card img{border-radius:2px;width:100%;height:auto;margin-bottom:9px;display:block}.chooser__card:hover,.chooser__card:focus-visible{border-color:#8a6a3a;transform:translateY(-2px);box-shadow:0 8px 22px #3c260c4d}.chooser__card[aria-pressed=true]{border-color:#8a5a1c;box-shadow:inset 0 0 0 2px #b8822e}.chooser__keep{color:#6a5a45;font:italic 14px var(--serif);cursor:pointer;background:0 0;border:0;margin-top:20px;padding:0;text-decoration:underline}.loading{background:var(--paper) url(/textures/paper.webp) center / cover;color:var(--ink);flex-direction:column;justify-content:center;align-items:center;gap:14px;transition:opacity .7s,visibility 0s linear .7s;display:flex;position:fixed;inset:0}.loading--done{opacity:0;visibility:hidden;pointer-events:none}.loading p{margin:0}.loading__title{letter-spacing:-.01em;font-size:44px;font-weight:600}.loading__bar{background:#2c26202e;width:180px;height:2px}.loading__bar span{transform-origin:0;background:#8a5a1c;height:100%;transition:transform .3s;display:block}.loading__note{color:#6a5a45;font-size:14px;font-style:italic}@media (prefers-reduced-motion:reduce){.chooser__card,.loading,.loading__bar span{transition:none}}.project-nav{background:var(--paper) url(/textures/paper.webp) center / cover;width:min(340px,100vw - 32px);max-height:calc(100vh - 80px);color:var(--ink);border:1px solid #c9b385;border-radius:6px;position:fixed;top:14px;left:16px;overflow:auto;box-shadow:0 16px 40px #00000080}.project-nav:not(:focus-within){clip-path:inset(50%);border:0;width:1px;height:1px;overflow:hidden}.project-nav ul{margin:0;padding:8px;list-style:none}.project-nav button{width:100%;color:inherit;font:14px/1.35 var(--serif);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:7px 10px;display:block}.project-nav button:hover,.project-nav button:focus-visible{background:#8a5a1c29}.project-nav strong,.project-nav span{display:block}.project-nav span{color:#5c5145;font-style:italic}.row-pager{flex-direction:column;gap:10px;display:flex;position:fixed;top:50%;right:12px;transform:translateY(-50%)}.row-pager button{color:#f3e6c4;width:44px;height:44px;font:20px/1 var(--serif);cursor:pointer;background:#120d0adb;border:1px solid #f3e6c499;border-radius:50%}.row-pager button:disabled{opacity:.35;cursor:default}.project-card{box-sizing:border-box;border:0;border-top:6px solid var(--book);width:min(440px,100vw - 28px);max-height:calc(100dvh - 40px);color:var(--ink);border-radius:4px;padding:0;animation:.4s backwards card-in;box-shadow:0 24px 70px #000000a6}.project-card::backdrop{background:#0a07058c;animation:.4s backwards card-in}.project-card--delayed,.project-card--delayed::backdrop{animation-delay:1.25s}.project-card__page{min-height:min(420px,100dvh - 46px);padding:24px 24px 22px;font-size:16px;overflow:auto}.project-card__page h1{font-size:28px}.project-card__page .project-page__tagline{font-size:17px}.project-card__page .project-page__back,.project-card__page .project-page__chips li,.project-card__page .project-page__status{font-size:14px}.project-card__page .project-page__back{min-height:32px}@keyframes card-in{0%{opacity:0}}@media (width<=767px),(height<=499px){.vibe-button,.zoom-controls button{min-height:44px;padding:8px 16px;font-size:14px}.zoom-controls button{min-width:44px;padding:8px 12px}.corner{gap:8px}}@media (prefers-reduced-motion:reduce){.vibe-button,.zoom-controls button{transition:none}}.drag-hint{color:#f3e6c4;font:italic 14px/1.3 var(--serif);white-space:nowrap;pointer-events:none;background:#120d0ac7;border-radius:999px;align-items:center;gap:8px;padding:6px 14px;animation:5.5s forwards hint-fade;display:flex;position:fixed;bottom:74px;left:50%;transform:translate(-50%)}.drag-hint span{font-style:normal;animation:1.1s ease-in-out 3 hint-nudge}.drag-hint span:last-child{animation-name:hint-nudge-right}@keyframes hint-fade{0%,85%{opacity:1}to{opacity:0}}@keyframes hint-nudge{50%{transform:translate(-5px)}}@keyframes hint-nudge-right{50%{transform:translate(5px)}}@media (prefers-reduced-motion:reduce){.drag-hint span{animation:none}}
