:root{--paper:#f6f1e8;--panel:#fffdf8;--panel-2:#fbf6ec;--sunk:#efe7d6;--ink:#221c14;--ink-soft:#7c6c52;--ink-faint:#ab9c82;--line:#221c14;--bw:2.5px;--radius:12px;--radius-sm:8px;--radius-pill:999px;--shadow:3px 3px 0 var(--ink);--shadow-lg:5px 5px 0 var(--ink);--shadow-press:1px 1px 0 var(--ink);--accent:#5a5142;--accent-soft:#efe7d6;--patch:#e0552b;--patch-deep:#c4441f;--patch-soft:#fbe3d8;--map:#0f9b8a;--map-deep:#0b7a6c;--map-soft:#d4efe9;--patent:#8a2a20;--patent-deep:#6e211a;--patent-soft:#f0ddd6;--maxw:460px;--font-display:"Baloo 2", system-ui, sans-serif;--font-sans:"Hanken Grotesk", system-ui, sans-serif;--font-mono:"Space Mono", ui-monospace, monospace}.hub-page{--paper:#f1f2ee;--panel:#fff;--panel-2:#f8f8f5;--sunk:#e8eae4;--ink:#202520;--ink-soft:#626a62;--ink-faint:#8c948b;--line:#d5d9d2;--bw:1px;--radius:16px;--radius-sm:12px;--shadow:0 5px 16px #20252014;--shadow-lg:0 10px 28px #2025201a;--shadow-press:0 2px 7px #2025201a;--font-display:var(--font-sans);--maxw:520px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--font-sans);color:var(--ink);background-color:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;justify-content:center;align-items:stretch;min-height:100vh;display:flex}.hub-page *,.hub-page :before,.hub-page :after{box-sizing:border-box}.hub-page .shell{width:100%;max-width:var(--maxw);background:var(--paper);border-left:var(--bw) solid var(--line);border-right:var(--bw) solid var(--line);flex-direction:column;min-height:100vh;display:flex;position:relative;overflow:hidden;box-shadow:0 0 48px #20252012}@media (max-width:500px){.hub-page .shell{border-left:none;border-right:none}}.hub-page .screen{flex-direction:column;flex:1;min-height:100vh;display:flex}.hub-head>*,.tiles>.tile,.hub-foot,.login-center>*{opacity:1;transition:opacity .55s cubic-bezier(.2,.9,.3,1),transform .55s cubic-bezier(.2,.9,.3,1);transform:translateY(0)}.screen.pre .hub-head>*,.screen.pre .tiles>.tile,.screen.pre .hub-foot,.screen.pre .login-center>*{opacity:0;transform:translateY(12px)}.hub-head>:first-child{transition-delay:20ms}.hub-head>:nth-child(2){transition-delay:60ms}.hub-head>:nth-child(3){transition-delay:.1s}.hub-head>:nth-child(4){transition-delay:.14s}.tiles>.tile:first-child{transition-delay:.2s}.tiles>.tile:nth-child(2){transition-delay:.27s}.tiles>.tile:nth-child(3){transition-delay:.34s}.hub-foot{transition-delay:.42s}.login-center>:first-child{transition-delay:40ms}.login-center>:nth-child(2){transition-delay:.12s}.login-center>:nth-child(3){transition-delay:.2s}@media (prefers-reduced-motion:reduce){.hub-head>*,.tiles>.tile,.hub-foot,.login-center>*{transition:none}}.hub-head{text-align:center;flex-direction:column;align-items:center;gap:15px;padding:44px 26px 26px;display:flex}.suite-glyph{border:var(--bw) solid var(--line);background:var(--panel);width:50px;height:50px;box-shadow:var(--shadow);border-radius:16px;flex:none;grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;gap:5px;padding:11px;display:grid}.suite-glyph i{background:var(--ink);border-radius:5px;display:block}.suite-glyph i:first-child{background:var(--patch)}.suite-glyph i:nth-child(2){background:var(--patent)}.suite-glyph i:nth-child(3){background:var(--map)}.suite-glyph i:nth-child(4){background:var(--ink-faint)}.hub-head .wordmark{font-family:var(--font-display);letter-spacing:-.04em;color:var(--ink);margin:0;font-size:42px;font-weight:800;line-height:.95}.hub-head .wordmark .dot{color:var(--ink-faint)}.hub-head .domain{font-family:var(--font-mono);letter-spacing:.02em;color:var(--ink-faint);margin-top:-8px;font-size:11.5px;font-weight:700}.hub-head .tagline{color:var(--ink-soft);text-wrap:balance;max-width:28ch;margin:0;font-size:14.5px;font-weight:600;line-height:1.4}.tiles{flex-direction:column;gap:14px;padding:6px 18px 8px;display:flex}.tile{--acc:var(--ink-faint);--acc-deep:var(--ink);--acc-soft:var(--accent-soft);text-align:left;border:var(--bw) solid var(--line);border-radius:var(--radius);background:var(--panel);width:100%;box-shadow:var(--shadow-lg);cursor:pointer;font-family:var(--font-sans);color:var(--ink);align-items:center;gap:15px;padding:17px;text-decoration:none;transition:transform .13s cubic-bezier(.2,.9,.3,1),box-shadow .13s;display:flex;position:relative;overflow:hidden}.tile-icon{border:1px solid color-mix(in srgb, var(--acc-deep) 25%, transparent);background:var(--acc-soft);width:54px;height:54px;color:var(--acc-deep);border-radius:13px;flex:none;place-items:center;display:grid}.tile-icon svg{width:28px;height:28px;display:block}.tile-body{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.tile-name{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);font-size:21px;font-weight:700;line-height:1}.tile-name .dle{color:var(--acc-deep)}.tile-tag{color:var(--ink-soft);text-wrap:pretty;font-size:12.8px;font-weight:600;line-height:1.32}.tile-status{flex-direction:column;flex:none;align-items:flex-end;gap:6px;display:flex}.play-pill{font-family:var(--font-sans);color:#fff;background:var(--acc);border-radius:var(--radius-pill);box-shadow:none;white-space:nowrap;border:none;align-items:center;gap:6px;padding:6px 13px 6px 14px;font-size:13px;font-weight:700;display:inline-flex}.play-pill svg{width:15px;height:15px}.soft-pill{font-family:var(--font-sans);letter-spacing:.05em;text-transform:uppercase;border-radius:var(--radius-pill);white-space:nowrap;align-items:center;gap:5px;padding:4px 10px;font-size:10.5px;font-weight:700;display:inline-flex}.soft-pill svg{width:12px;height:12px}.soft-pill.soon{color:var(--acc-deep);background:var(--acc-soft);border:1px solid color-mix(in srgb, var(--acc-deep) 30%, transparent)}.soft-pill.planned{color:var(--ink-faint);border:1px dashed var(--ink-faint);background:0 0}.tile.live:hover{transform:translateY(-2px);box-shadow:0 14px 32px #20252024}.tile.live:active{box-shadow:var(--shadow-press);transform:translateY(0)}.tile.live:focus-visible{outline:3px solid var(--acc);outline-offset:3px}.tile.soon{background:var(--panel-2)}.tile.soon:hover{transform:translateY(-1px);box-shadow:0 12px 28px #2025201f}.tile.soon:active{box-shadow:var(--shadow);transform:translateY(0)}.tile.soon:focus-visible{outline:3px solid var(--acc);outline-offset:3px}.tile.planned{border-style:dashed;border-color:var(--ink-faint);box-shadow:none;background:0 0}.tile.planned .tile-icon{border-color:var(--ink-faint);color:var(--ink-faint);background:0 0}.tile.planned .tile-name{color:var(--ink-soft)}.tile.planned .tile-name .dle,.tile.planned .tile-tag{color:var(--ink-faint)}.tile.planned:hover{border-color:var(--ink-soft);transform:translateY(-1px)}.tile.planned:active{transform:translateY(0)}.tile.planned:focus-visible{outline:3px solid var(--ink-soft);outline-offset:3px}.tile.game-patchdle{background:#fdf7ea;border:2.5px solid #221c14;border-radius:7px;box-shadow:4px 4px #221c14}.tile.game-patchdle .tile-icon{background:#f4ecda;border:2.5px solid #221c14;border-radius:5px}.tile.game-patchdle .tile-icon svg{width:30px;height:30px}.tile.game-patchdle .tile-name{font-family:"Baloo 2",system-ui,sans-serif;font-size:23px;font-weight:800}.tile.game-patchdle .play-pill{border:2px solid #221c14;font-family:"Baloo 2",system-ui,sans-serif;font-size:14px;font-weight:800;box-shadow:2px 2px #221c14}.tile.game-patchdle:hover{transform:translate(-1px,-2px);box-shadow:6px 7px #221c14}.tile.game-patchdle:active{transform:translate(2px,2px);box-shadow:1px 1px #221c14}.tile.game-patentdle{border:1px solid #2a2118;background:#f3ebd6;border-block-style:double;border-block-width:3px;border-radius:0;box-shadow:0 8px 20px #2a211821}.tile.game-patentdle .tile-icon{background:0 0;border:0;border-radius:0;width:50px}.tile.game-patentdle .tile-icon svg{width:35px;height:35px}.tile.game-patentdle .tile-name{letter-spacing:.01em;font-family:Old Standard TT,Georgia,serif;font-size:23px;font-weight:700}.tile.game-patentdle .tile-name .dle{color:#8a2a20}.tile.game-patentdle .tile-tag{color:#6f6046;font-family:Courier Prime,Courier New,monospace;font-size:12px;font-weight:400}.tile.game-patentdle .play-pill{letter-spacing:.07em;text-transform:uppercase;color:#8a2a20;background:0 0;border:1px solid #8a2a20;border-radius:0;padding:7px 10px;font-family:Courier Prime,Courier New,monospace;font-size:11px;font-weight:700}.tile.game-patentdle:hover{background:#faf5e6;transform:translateY(-1px);box-shadow:0 11px 24px #2a21182b}.tile.game-patentdle:active{transform:translateY(0);box-shadow:0 3px 10px #2a21181f}.tile.launching{pointer-events:none}.tile.launching:after{content:"";background:linear-gradient(100deg,#0000 30%,#ffffff80 50%,#0000 70%) 0 0/220% 100%;animation:.9s linear infinite shimmer;position:absolute;inset:0}@keyframes shimmer{0%{background-position:120% 0}to{background-position:-120% 0}}.hub-foot{flex-direction:column;align-items:center;gap:15px;margin-top:auto;padding:22px 22px 30px;display:flex}.foot-perf{border:none;border-top:1px solid var(--line);width:100%;height:0}.reset-hint{color:var(--ink-soft);align-items:center;gap:8px;font-size:12.5px;font-weight:600;display:inline-flex}.reset-hint svg{width:14px;height:14px;color:var(--ink-faint)}.reset-hint b{font-family:var(--font-mono);color:var(--ink);letter-spacing:-.01em;font-weight:700}.hub-foot .foot-links{align-items:center;gap:8px;display:flex}.hub-foot .foot-btn{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--panel);min-width:34px;height:34px;color:var(--ink-soft);box-shadow:none;justify-content:center;align-items:center;gap:6px;padding:0 10px;text-decoration:none;transition:color .15s,border-color .15s;display:inline-flex}.hub-foot .foot-btn:hover,.hub-foot .foot-btn:focus-visible{color:var(--ink);border-color:var(--ink);outline:none}.hub-foot .foot-btn:active{box-shadow:var(--shadow-press);transform:translate(1px,1px)}.hub-foot .foot-btn svg{width:17px;height:17px;display:block}.hub-foot .foot-kofi{background:var(--ink);border-color:var(--ink);color:var(--panel);font-family:var(--font-display);letter-spacing:.01em;padding:0 13px;font-size:13px;font-weight:800}.hub-foot .foot-kofi:hover,.hub-foot .foot-kofi:focus-visible{color:#fff;background:#000;border-color:#000}.foot-row{justify-content:center;align-items:center;width:100%;display:flex}.credit{color:var(--ink-faint);font-size:11.5px;font-weight:600}.credit a{color:var(--ink-soft);font-weight:700;text-decoration:none}.credit a:hover{color:var(--ink);text-decoration:underline}.login{flex-direction:column;flex:1;padding:18px 26px 30px;display:flex}.login-back{cursor:pointer;color:var(--ink-soft);font-family:var(--font-sans);background:0 0;border:none;align-self:flex-start;align-items:center;gap:6px;padding:8px 4px;font-size:13.5px;font-weight:700;text-decoration:none;display:inline-flex}.login-back svg{width:16px;height:16px}.login-back:hover{color:var(--ink)}.login-back:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:6px}.login-center{flex-direction:column;flex:1;justify-content:center;gap:22px;width:100%;max-width:340px;margin:0 auto;padding-bottom:8vh;display:flex}.login-mark{text-align:center;flex-direction:column;align-items:center;gap:16px;display:flex}.login-titles{flex-direction:column;align-items:center;gap:7px;display:flex}.login-lock{background:var(--panel);border:var(--bw) solid var(--line);width:60px;height:60px;box-shadow:var(--shadow-lg);color:var(--ink);border-radius:14px;place-items:center;display:grid}.login-lock svg{width:28px;height:28px}.login-title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);white-space:nowrap;margin:0;font-size:26px;font-weight:800;line-height:1}.login-sub{color:var(--ink-soft);font-size:13px;font-weight:600;font-family:var(--font-mono);letter-spacing:.01em;margin:0}.login-form{flex-direction:column;gap:12px;display:flex}.pw-field{background:var(--panel);border:var(--bw) solid var(--line);border-radius:var(--radius);height:54px;box-shadow:var(--shadow);align-items:center;gap:10px;padding:0 12px;transition:box-shadow .1s;display:flex}.pw-field:focus-within{border-color:var(--ink);box-shadow:0 0 0 3px #20252029, var(--shadow)}.pw-field .sicon{color:var(--ink-soft);flex:none;place-items:center;display:grid}.pw-field .sicon svg{width:18px;height:18px}.pw-field input{font-family:var(--font-sans);color:var(--ink);letter-spacing:.04em;background:0 0;border:none;outline:none;flex:1;min-width:0;padding:0;font-size:16px;font-weight:600}.pw-field input::placeholder{color:var(--ink-faint);letter-spacing:0;font-weight:600}.pw-field .eye{cursor:pointer;color:var(--ink-soft);background:0 0;border:none;place-items:center;padding:6px;display:grid}.pw-field .eye:hover{color:var(--ink)}.pw-field .eye svg{width:18px;height:18px}.pw-field.err{box-shadow:0 0 0 3px #c0392b33, var(--shadow);border-color:#c0392b}.pw-field.shake{animation:.4s cubic-bezier(.36,.07,.19,.97) both shake}@keyframes shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-4px)}40%,60%{transform:translate(4px)}}.pw-error{color:#c0392b;align-items:center;gap:6px;min-height:16px;padding-left:2px;font-size:12.5px;font-weight:700;display:flex}.pw-error svg{flex:none;width:14px;height:14px}.btn-enter{width:100%;height:52px;font-family:var(--font-display);letter-spacing:.01em;color:var(--panel);background:var(--ink);border:var(--bw) solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);cursor:pointer;justify-content:center;align-items:center;gap:8px;font-size:16.5px;font-weight:800;transition:transform 60ms,box-shadow 60ms;display:flex}.btn-enter:hover:not(:disabled){background:#000}.btn-enter:active:not(:disabled){box-shadow:var(--shadow-press);transform:translate(2px,2px)}.btn-enter:focus-visible{outline:3px solid var(--patch);outline-offset:2px}.btn-enter:disabled{opacity:.55;cursor:progress}.btn-enter svg{width:18px;height:18px}.btn-enter.ok{background:var(--map);border-color:var(--map-deep);color:#fff}.spin{border:2.5px solid #ffffff4d;border-top-color:var(--panel);border-radius:50%;width:17px;height:17px;animation:.6s linear infinite rot}@keyframes rot{to{transform:rotate(360deg)}}.login-foot{text-align:center;color:var(--ink-faint);font-size:11px;font-weight:600;font-family:var(--font-mono);letter-spacing:.02em;justify-content:center;align-items:center;gap:6px;display:flex}.login-foot svg{width:12px;height:12px}.toast{background:var(--ink);color:var(--panel);border:2.5px solid var(--line);border-radius:var(--radius-pill);z-index:90;box-shadow:var(--shadow-lg);max-width:calc(var(--maxw) - 40px);align-items:center;gap:9px;padding:11px 17px;font-size:13.5px;font-weight:700;animation:.3s cubic-bezier(.2,.9,.3,1.1) both toastIn;display:inline-flex;position:fixed;bottom:26px;left:50%;transform:translate(-50%)}.toast .tdot{background:var(--paper);border-radius:50%;flex:none;width:9px;height:9px}.toast.patch .tdot{background:var(--patch)}.toast.map .tdot{background:var(--map)}.toast.patent .tdot{background:var(--patent)}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,14px)}to{opacity:1;transform:translate(-50%)}}.sr-only{clip:rect(0,0,0,0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.tile.launching:after{animation:none}.spin{animation-duration:1.4s}}
