@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-full-normal-7BpKI3vF.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-full-normal-YHFkNujK.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-full-normal-CFFu7zhK.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-full-italic-BHALq22K.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-full-italic-B8-t4Nou.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-full-italic-D2JnYqd-.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;font-stretch:75% 100%;src:url(/assets/bricolage-grotesque-vietnamese-standard-normal-Br4FGdAc.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;font-stretch:75% 100%;src:url(/assets/bricolage-grotesque-latin-ext-standard-normal-qp-RdZgh.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;font-stretch:75% 100%;src:url(/assets/bricolage-grotesque-latin-standard-normal-C5Lc8Qmc.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{--ink:#0c0b12;--ink-2:#15131d;--ink-3:#1d1a27;--paper:#f4efe6;--paper-dim:#f4efe6a3;--paper-faint:#f4efe65c;--line:#f4efe61f;--glass:#16141f9e;--vermilion:#ff5a36;--sun:#ffc53d;--mint:#3ddcb0;--cobalt:#5b72ff;--pink:#ff6fb5;--lilac:#b39cff;--tangerine:#ff8a1f;--box-bg:#e6e5e0;--box-panel:#f4f3ee;--box-ink:#121212;--box-dim:#6f6e69;--box-line:#12121224;--box-grid:#1212120e;--box-accent:#ff4f00;--serif:"Fraunces Variable", "Iowan Old Style", "Palatino Linotype", Georgia, serif;--sans:"Bricolage Grotesque Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"Bricolage Grotesque Variable", system-ui, sans-serif;--ease:cubic-bezier(.2, .8, .2, 1);--spring:cubic-bezier(.34, 1.56, .64, 1);--radius:999px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0}a{color:inherit}img{max-width:100%;display:block}::selection{background:#ff5a3659}:focus-visible{outline:2px solid var(--sun);outline-offset:3px;border-radius:4px}body[data-tone=light] :focus-visible{outline-color:var(--box-accent);border-radius:0}.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}.soft{font-family:var(--serif);font-variation-settings:"SOFT" var(--soft,100), "WONK" var(--wonk,0)}.mark{white-space:nowrap;color:inherit;font-family:var(--serif);letter-spacing:-.01em;font-variation-settings:"SOFT" 100, "WONK" 1, "opsz" 24;align-items:center;gap:.55rem;font-size:1.12rem;font-weight:460;text-decoration:none;display:inline-flex}.mark-svg{flex:none;width:26px;height:26px;overflow:visible}.mark-svg .mk-box{fill:none;stroke:currentColor;stroke-width:2.2px}.mark-svg .mk-ball{fill:var(--vermilion);transform-box:fill-box;transform-origin:50%;transition:transform .5s var(--spring)}.mark:hover .mk-ball{transform:translate(2px,-3px)scale(1.08)}.btn{border-radius:var(--radius);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;transition:transform .25s var(--spring), background .25s, color .25s, border-color .25s, opacity .25s;white-space:nowrap;justify-content:center;align-items:center;gap:.5rem;padding:.85rem 1.4rem;font-size:.74rem;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.96)}.btn-solid{background:var(--paper);color:var(--ink)}.btn-solid:hover{transform:translateY(-1px)scale(1.02)}.btn-ghost{border:1px solid var(--line);color:var(--paper)}.btn-ghost:hover{border-color:var(--paper-dim)}.btn[disabled]{opacity:.4;pointer-events:none}body[data-tone=light] .btn{border-radius:0}body[data-tone=light] .btn-solid{background:var(--box-ink);color:var(--box-panel)}body[data-tone=light] .btn-ghost{border-color:var(--box-line);color:var(--box-ink)}.tip{z-index:95;pointer-events:none;color:#e9e4da;max-width:270px;font-family:var(--sans);letter-spacing:0;text-transform:none;text-align:left;opacity:0;transform-origin:50% 100%;transition:opacity .2s, transform .25s var(--spring);background:#14121cf5;border:1px solid #f4efe624;border-radius:12px;padding:.65rem .85rem;font-size:.8rem;line-height:1.45;position:fixed;transform:translate(-50%,calc(-100% - 10px))scale(.96)}.tip.show{opacity:1;transform:translate(-50%,calc(-100% - 14px))scale(1)}.tip b{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;margin-bottom:.3rem;font-size:.66rem;font-weight:500;display:block}.tip kbd{font-family:var(--mono);opacity:.6;font-size:.68rem}body[data-tone=light] .tip{background:var(--box-ink);color:var(--box-panel);border-color:var(--box-ink);border-radius:0}.toasts{z-index:90;pointer-events:none;flex-direction:column;align-items:center;gap:.5rem;display:flex;position:fixed;bottom:7.4rem;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;border-radius:var(--radius);color:var(--ink);animation:toastin .4s var(--spring);background:#f4efe6f5;align-items:center;gap:.9rem;padding:.7rem 1.1rem;font-size:.86rem;display:flex;box-shadow:0 12px 40px #00000059}.toast button{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;text-underline-offset:3px;font-size:.7rem;text-decoration:underline}.toast.out{animation:toastout .3s var(--ease) forwards}@keyframes toastin{0%{opacity:0;transform:translateY(12px)scale(.92)}}@keyframes toastout{to{opacity:0;transform:translateY(8px)scale(.96)}}body[data-tone=light] .toast{background:var(--box-ink);color:var(--box-panel);border-radius:0}.modal{z-index:80;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;pointer-events:none;background:#08070c99;place-items:center;padding:1.2rem;transition:opacity .3s;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.modal.open{opacity:1;pointer-events:auto}.modal-card{border:1px solid var(--line);width:min(420px,100%);color:var(--paper);transition:transform .45s var(--spring);background:linear-gradient(160deg,#1b1824 0%,#121019 100%);border-radius:28px;padding:2.2rem 2rem 1.8rem;position:relative;overflow:hidden;transform:translateY(14px)scale(.97);box-shadow:0 40px 120px #0009}.modal.open .modal-card{transform:none}.modal-close{width:2rem;height:2rem;color:var(--paper-dim);border-radius:50%;font-size:1.2rem;position:absolute;top:.9rem;right:1rem}.modal-close:hover{color:var(--paper);background:#ffffff0f}.spark{font-family:var(--serif);letter-spacing:-.02em;text-align:center;text-wrap:balance;max-width:17ch;font-size:clamp(2.1rem,5.3vw,5.1rem);font-weight:360;line-height:1.06}.spark .line{display:block}.spark .w{font-variation-settings:"SOFT" var(--soft,100), "WONK" 1, "opsz" 144;display:inline-block}.spark .accent .w{color:var(--game);font-style:italic}.spark-sub{font-family:var(--serif);color:var(--paper-dim);text-align:center;margin-top:.85em;font-size:clamp(1.05rem,1.9vw,1.55rem);font-style:italic;font-weight:340;line-height:1.35}.spark-sub .w{font-variation-settings:"SOFT" var(--soft,100), "WONK" 1, "opsz" 24;display:inline-block}.holdable{cursor:pointer;-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:.2em;margin:0 -.08em;padding:0 .08em;transition:background .25s,box-shadow .25s}.holdable:hover{background:color-mix(in srgb, var(--game) 16%, transparent)}.holdable.held{background:color-mix(in srgb, var(--game) 26%, transparent);box-shadow:inset 0 -.07em 0 var(--game)}[data-wing=build] .spark{font-family:var(--sans);letter-spacing:-.035em;max-width:21ch;font-size:clamp(1.7rem,3.9vw,3.4rem);font-weight:650;line-height:1.04}[data-wing=build] .spark .w{font-variation-settings:normal}[data-wing=build] .spark .accent .w{color:var(--game);font-style:normal}[data-wing=build] .spark-sub{font-family:var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--box-dim);max-width:70ch;margin-inline-start:auto;margin-inline-end:auto;font-size:.74rem;font-style:normal;line-height:1.7}[data-wing=build] .holdable{border-radius:0}.library{z-index:50;width:min(440px,94vw);color:var(--paper);border-left:1px solid var(--line);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);transition:transform .5s var(--ease);background:#100e16f2;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(105%)}.library.open{transform:none;box-shadow:-30px 0 80px #0006}.lib-head{justify-content:space-between;align-items:center;padding:1.3rem 1.3rem .9rem;display:flex}.lib-title{font-family:var(--serif);font-variation-settings:"SOFT" 100, "WONK" 1, "opsz" 72;font-size:1.7rem;font-weight:380}.lib-title small{font-family:var(--mono);letter-spacing:.16em;color:var(--paper-faint);margin-left:.5rem;font-size:.62rem}.lib-filters{flex-wrap:wrap;gap:.3rem;padding:0 1.3rem .8rem;display:flex}.chip{border-radius:var(--radius);border:1px solid var(--line);font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--paper-dim);padding:.45rem .75rem;font-size:.58rem}.chip[aria-pressed=true]{background:var(--paper);color:var(--ink);border-color:var(--paper)}.lib-search{border-radius:var(--radius);border:1px solid var(--line);background:#ffffff0d;outline:none;margin:0 1.3rem .8rem;padding:.7rem 1rem;font-size:.9rem}.lib-search:focus{border-color:var(--paper-dim)}.lib-banner{color:var(--paper-dim);background:#ffc53d17;border:1px solid #ffc53d3d;border-radius:16px;justify-content:space-between;align-items:center;gap:.8rem;margin:0 1.3rem .9rem;padding:.85rem 1rem;font-size:.82rem;line-height:1.45;display:flex}.lib-banner .btn{flex:none;padding:.55rem .85rem}.lib-list{flex-direction:column;flex:1;gap:.7rem;padding:0 1.3rem 2rem;display:flex;overflow-y:auto}.lib-sect{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--paper-faint);margin:.6rem 0 .1rem;font-size:.58rem}.lib-card{border:1px solid var(--line);animation:cardin .45s var(--spring) both;background:#ffffff0a;border-radius:16px;padding:.95rem 1rem .7rem 1.2rem;position:relative;overflow:hidden}.lib-card:before{content:"";background:var(--c);width:4px;position:absolute;top:0;bottom:0;left:0}@keyframes cardin{0%{opacity:0;transform:translateY(8px)scale(.98)}}.lib-meta{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--paper-faint);justify-content:space-between;margin-bottom:.45rem;font-size:.56rem;display:flex}.lib-meta b{color:var(--c);font-weight:500}.lib-text{font-family:var(--serif);white-space:pre-line;-webkit-user-select:text;user-select:text;font-variation-settings:"SOFT" 100, "opsz" 18;font-size:1.02rem;line-height:1.42}.lib-card.build .lib-text{font-family:var(--sans);font-variation-settings:normal;font-size:.92rem}.lib-thumbs{gap:.45rem;margin-top:.65rem;display:flex}.lib-thumbs img{object-fit:cover;border-radius:42% 58% 55% 45%/50% 45% 55% 50%;width:58px;height:58px}.lib-acts{flex-wrap:wrap;gap:.15rem;margin-top:.6rem;display:flex}.lib-acts button{border-radius:var(--radius);font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--paper-faint);padding:.35rem .55rem;font-size:.56rem}.lib-acts button:hover{color:var(--paper);background:#ffffff12}.lib-empty{text-align:center;font-family:var(--serif);color:var(--paper-faint);padding:2.4rem .6rem;font-size:1.02rem;font-style:italic;line-height:1.5}.auth-glow{aspect-ratio:1;pointer-events:none;background:radial-gradient(closest-side,#ff5a3642,#5b72ff1f 55%,#0000);width:130%;position:absolute;top:-55%;left:50%;transform:translate(-50%)}.auth-h{font-family:var(--serif);font-variation-settings:"SOFT" 100, "WONK" 1, "opsz" 72;font-size:2.1rem;font-weight:380;line-height:1.05;position:relative}.auth-p{color:var(--paper-dim);margin:.7rem 0 1.4rem;font-size:.92rem;line-height:1.5;position:relative}.auth-btns{flex-direction:column;gap:.55rem;display:flex;position:relative}.prov{border-radius:var(--radius);background:var(--paper);color:var(--ink);transition:transform .25s var(--spring), opacity .25s;justify-content:center;align-items:center;gap:.7rem;padding:.88rem 1rem;font-size:.94rem;font-weight:560;display:flex}.prov:hover{transform:translateY(-1px)}.prov.dark{color:#fff;background:#000;border:1px solid #fff3}.prov svg{flex:none;width:18px;height:18px}.or{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--paper-faint);align-items:center;gap:.8rem;margin:1.1rem 0;font-size:.58rem;display:flex}.or:before,.or:after{content:"";background:var(--line);flex:1;height:1px}.email-row{gap:.4rem;display:flex;position:relative}.email-row input{border-radius:var(--radius);border:1px solid var(--line);background:#ffffff0f;outline:none;flex:1;min-width:0;padding:.85rem 1.1rem}.email-row input:focus{border-color:var(--paper-dim)}.auth-msg{min-height:1.2em;margin-top:.9rem;font-size:.86rem;line-height:1.45;position:relative}.auth-msg.err{color:#ff9a85}.auth-msg.ok{color:var(--mint)}.auth-fine{color:var(--paper-faint);margin-top:1.1rem;font-size:.74rem;line-height:1.45;position:relative}.auth-soon{border:1px solid var(--line);color:var(--paper-dim);background:#ffffff0d;border-radius:16px;margin-bottom:1rem;padding:.9rem 1rem;font-size:.86rem;line-height:1.5;position:relative}.mapwrap{z-index:60;background:var(--ink);color:var(--paper);flex-direction:column;display:none;position:fixed;top:0;bottom:0;left:0;right:0}.mapwrap.open{display:flex}.map-bar{border-bottom:1px solid var(--line);align-items:center;gap:.6rem;padding:.95rem 1.3rem;display:flex}.map-title{min-width:0;font-family:var(--serif);white-space:nowrap;text-overflow:ellipsis;font-variation-settings:"SOFT" 100, "opsz" 18;flex:1;font-size:1.08rem;overflow:hidden}.map-view{cursor:grab;touch-action:none;background-image:radial-gradient(#f4efe614 1px,#0000 1px);background-size:26px 26px;flex:1;position:relative;overflow:hidden}.map-view.panning{cursor:grabbing}.map-inner{transform-origin:0 0;position:absolute;top:0;left:0}.map-svg{pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.map-svg path{fill:none;stroke-width:2px;stroke-linecap:round;opacity:.75}.mn{border:1px solid var(--line);width:max-content;min-width:3ch;max-width:240px;font-family:var(--serif);white-space:pre-wrap;cursor:pointer;font-variation-settings:"SOFT" 100, "opsz" 18;background:#ffffff0d;border-radius:16px;padding:.5rem .85rem .5rem 1.55rem;font-size:.98rem;line-height:1.32;transition:border-color .2s,box-shadow .2s;position:absolute}.mn:before{content:"";background:var(--c);border-radius:50%;width:7px;height:7px;position:absolute;top:.95rem;left:.7rem}.mn.root{background:color-mix(in srgb, var(--c) 16%, transparent);border-color:color-mix(in srgb, var(--c) 60%, transparent);padding:.8rem 1.1rem .8rem 1.9rem;font-size:1.22rem}.mn.root:before{width:9px;height:9px;top:1.3rem}.mn.sel{border-color:var(--c);box-shadow:0 0 0 3px color-mix(in srgb, var(--c) 30%, transparent)}.mn.fresh{animation:mnpop .45s var(--spring)}@keyframes mnpop{0%{opacity:0;transform:scale(.6)}}.mn[contenteditable=true]{cursor:text;-webkit-user-select:text;user-select:text;background:#ffffff1a;outline:none}.map-hint{text-align:center;pointer-events:none;font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--paper-faint);font-size:.58rem;position:absolute;bottom:1.1rem;left:0;right:0}.mapwrap[data-wing=build]{background:var(--box-bg);color:var(--box-ink)}.mapwrap[data-wing=build] .map-bar{border-bottom-color:var(--box-ink)}.mapwrap[data-wing=build] .map-view{background-image:linear-gradient(var(--box-grid) 1px, transparent 1px), linear-gradient(90deg, var(--box-grid) 1px, transparent 1px);background-size:32px 32px}.mapwrap[data-wing=build] .mn{border-color:var(--box-line);font-family:var(--sans);font-variation-settings:normal;background:#fff;border-radius:0;font-size:.9rem}.mapwrap[data-wing=build] .mn:before{border-radius:0}.mapwrap[data-wing=build] .map-title{font-family:var(--sans);font-variation-settings:normal;font-weight:600}.mapwrap[data-wing=build] .map-hint{color:var(--box-dim)}.acct-pop{z-index:85;border:1px solid var(--line);min-width:220px;color:var(--paper);opacity:0;pointer-events:none;transition:opacity .2s, transform .3s var(--spring);background:#16141ff7;border-radius:18px;padding:1rem;position:fixed;top:4rem;right:1.5rem;transform:translateY(-6px)scale(.98);box-shadow:0 24px 70px #00000080}.acct-pop.open{opacity:1;pointer-events:auto;transform:none}.acct-pop .who{color:var(--paper-dim);word-break:break-all;margin-bottom:.8rem;font-size:.84rem}.acct-pop button{justify-content:flex-start;width:100%}
