@media (width<=690px){:root{--todori-roll-height:56px;--todori-roll-cap:36px}.todori-parchment-sheet,.todori-entry-sheet{border-inline-width:7px}.todori-entry-sheet:before,.todori-entry-sheet:after{left:calc(-1 * var(--todori-sheet-inset) - 7px);width:calc(100% + 2 * var(--todori-sheet-inset) + 14px)}}html{scrollbar-gutter:stable;background:#27343d}body{margin:0}.todori-entry-pending{margin-block:0}.todori-entry-status{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}:root{--todori-roll-height:64px;--todori-roll-cap:42px;--todori-cloud-overlap:clamp(18px, 4vw, 42px);--todori-sheet-inset:clamp(13px, 3.45vw, 38px)}.todori-site{box-sizing:border-box;width:min(1100px,100% - 16px);margin-inline:auto;padding-inline:0}.todori-scroll-bar{z-index:3;box-sizing:border-box;height:var(--todori-roll-height);min-height:var(--todori-roll-height);background:0 0;position:relative}.todori-scroll-bar:before{content:"";z-index:-1;pointer-events:none;position:absolute;inset:0}.todori-scroll-bar:before,.todori-entry-sheet:before,.todori-entry-sheet:after{box-sizing:border-box;background:url(/assets/ui/todori-scroll-v4.svg) 50%/100% 100% no-repeat}.todori-parchment-sheet,.todori-entry-sheet{box-sizing:border-box;z-index:1;background:#fbf7e5;border-inline:10px solid #ed9277;border-radius:0;position:relative;box-shadow:inset 1px 0 #bc795b,inset -1px 0 #bc795b}.todori-entry-sheet{margin:calc(var(--todori-roll-height) - var(--todori-cloud-overlap)) var(--todori-sheet-inset) calc(var(--todori-roll-height) + 16px);padding:clamp(20px,4vw,36px)}.todori-entry-sheet:before,.todori-entry-sheet:after{content:"";z-index:3;left:calc(-1 * var(--todori-sheet-inset) - 10px);width:calc(100% + 2 * var(--todori-sheet-inset) + 20px);height:var(--todori-roll-height);pointer-events:none;position:absolute}.todori-entry-sheet:before{top:calc(-1 * var(--todori-roll-height))}.todori-entry-sheet:before,.todori-primary-nav:before,.landing-navigation:before{background:url(/assets/ui/todori-scroll-v4.svg) center / 100% 100% no-repeat, linear-gradient(transparent 50%, #fbf7e5 50%) center / calc(100% - 2 * var(--todori-sheet-inset)) 100% no-repeat}.todori-footer-roll:before{background:url(/assets/ui/todori-scroll-v4.svg) center / 100% 100% no-repeat, linear-gradient(#fbf7e5 50%, transparent 50%) center / calc(100% - 2 * var(--todori-sheet-inset)) 100% no-repeat}.todori-entry-sheet:after{bottom:calc(-1 * var(--todori-roll-height))}@media (width<=690px){:root{--todori-roll-height:56px;--todori-roll-cap:36px}.todori-parchment-sheet,.todori-entry-sheet{border-inline-width:7px}.todori-entry-sheet:before,.todori-entry-sheet:after{left:calc(-1 * var(--todori-sheet-inset) - 7px);width:calc(100% + 2 * var(--todori-sheet-inset) + 14px)}}.todori-masthead{aspect-ratio:2159/728;z-index:2;background:url(/assets/world/hoshi-village-masthead-v11.webp) bottom/100% no-repeat;position:relative}.todori-masthead>p{display:none}.todori-wordmark{width:min(400px,42%);left:10%;bottom:calc(var(--todori-cloud-overlap) + 4px);position:absolute}.todori-wordmark img{width:100%;height:auto;display:block}.todori-site-footer{z-index:30;color:#354d2e;width:min(1100px,100% - 16px);margin:0 auto 20px;position:relative}.todori-site>.todori-site-footer{width:100%}.todori-site.todori-game-shell,.todori-site .todori-entry-sheet{margin-bottom:0}.todori-site .todori-entry-sheet:after{content:none}.todori-site .character-onboarding-footer{display:none}.todori-site main:focus,.todori-site [tabindex="-1"]:focus{outline:none}.todori-footer-roll{padding:5px calc(var(--todori-roll-cap) + 8px);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;margin-top:-5px;display:grid}.todori-footer-account{grid-column:1;min-width:0}.todori-footer-legal{grid-column:2}.todori-footer-languages{grid-column:3;justify-self:end}.todori-footer-legal,.todori-footer-languages{white-space:nowrap;justify-content:center;align-items:center;gap:4px;font-size:.75rem;display:flex}.todori-footer-label-short,.todori-footer-language-select{display:none}.todori-footer-legal a{min-width:44px;min-height:44px;color:inherit;text-underline-offset:3px;border-radius:4px;justify-content:center;align-items:center;padding:0 7px;display:inline-flex}.todori-site-footer .todori-footer-languages button{min-width:44px;min-height:44px;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:0 5px}.todori-footer-languages button[aria-pressed=true]{color:#283e20;text-underline-offset:3px;font-weight:700;text-decoration:underline}.todori-site-footer a:is(:hover,:focus-visible),.todori-site-footer .todori-footer-languages button:is(:hover,:focus-visible){color:#263d21;background:0 0;text-decoration:underline;text-decoration-thickness:2px}.todori-site-footer :focus-visible{outline-offset:-2px;outline:2px solid #648449}@media (width<=690px){.todori-footer-roll{gap:2px;padding-inline:46px}.todori-footer-legal{font-size:.68rem}.todori-footer-legal a{padding-inline:2px}.todori-footer-label-full{display:none}.todori-footer-label-short{display:inline}.todori-site-footer .todori-footer-languages button{display:none}.todori-footer-language-select{box-sizing:border-box;width:48px;height:44px;color:inherit;font:inherit;background:#cee4a5;border:1px solid #7a9754;border-radius:4px;padding:0 2px;display:block}.todori-footer-roll .password-account-menu{width:44px;min-width:44px;margin:0}.todori-footer-roll .password-account-menu>summary{justify-content:center;padding:5px}.todori-footer-roll .password-account-menu>summary>span{display:none}.todori-footer-roll .password-account-menu>summary:before{content:"☰";font-size:18px}.todori-footer-roll .password-account-menu>summary:after{content:none}}@media (width<=430px){.todori-footer-roll{grid-template-columns:auto minmax(0,1fr) auto}}.identity-emblem{background:#448780;flex:0 0 28px;width:28px;height:28px}.identity-emblem--hoshi{clip-path:polygon(50% 0,61% 36%,100% 50%,61% 64%,50% 100%,39% 64%,0 50%,39% 36%)}.identity-emblem--hiyake{clip-path:polygon(50% 0,66% 31%,100% 50%,66% 69%,50% 100%,34% 69%,0 50%,34% 31%);background:#b56832;transform:rotate(22.5deg)}.identity-emblem--tsuki{clip-path:polygon(50% 0,100% 0,100% 100%,50% 100%,22% 75%,22% 25%);background:#77709b;border-radius:50%}.landing-section{border-top:1px solid #ded6b5;padding:clamp(24px,4vw,48px);scroll-margin-top:20px}.landing-section-summary{color:var(--landing-muted);margin:12px 0 24px}.landing-villages{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.landing-village{background:#fffbed;border-radius:12px;min-width:0;overflow:clip}.landing-village-emblem{place-items:center;padding:24px 18px 6px;display:grid}.landing-village-emblem .identity-emblem{width:56px;height:56px}.landing-village-copy{padding:18px}.landing-village-tag{color:#3b6773;margin:0 0 6px;font-size:.75rem;font-weight:700}.landing-village-hiyake .landing-village-tag{color:#9b5130}.landing-village-tsuki .landing-village-tag{color:#6c507f}.landing-village h3{font-size:1.7rem}.landing-village-copy>p:last-child{color:var(--landing-muted);margin-bottom:0;font-size:.92rem}.landing-features{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 36px;margin-top:28px;display:grid}.landing-features article{gap:14px;display:flex}.landing-features h3{font-size:1.17rem;line-height:1.4}.landing-features p{color:var(--landing-muted);margin:8px 0 0;font-size:.94rem}.landing-feature-number{color:#4d7450;font-family:Georgia,serif;font-size:2rem;line-height:1}.landing-fairness{background:#e5edcc;border-radius:12px;margin:0 clamp(24px,4vw,48px);padding:clamp(24px,3vw,36px);scroll-margin-top:20px}.landing-fairness>p:last-child{max-width:78ch;margin-bottom:0}.landing-closing{text-align:center;padding:clamp(28px,5vw,52px)}.landing-closing p{color:var(--landing-muted);margin:14px 0 24px}.landing-startup-error{color:#354337;background:#fbf5dd;border-radius:8px;width:min(720px,100% - 32px);margin:24px auto;padding:24px}.landing-startup-error button{padding:10px 16px}@font-face{font-family:Todori Landing;font-style:normal;font-weight:200 1000;font-display:swap;src:url(/fonts/nunito/Nunito-wght.ttf)format("truetype")}.public-landing{--landing-ink:#354337;--landing-muted:#59624e;--landing-paper:#fbf5dd;color:var(--landing-ink);font-family:Todori Landing,Trebuchet MS,Segoe UI,sans-serif}.landing-parchment{margin:-4px var(--todori-sheet-inset) 0;overflow:clip}.landing-navigation{margin-top:calc(-1 * var(--todori-cloud-overlap));padding:8px calc(var(--todori-roll-cap) + 4px);align-items:center;gap:4px;display:flex;overflow:hidden}.public-landing a{color:inherit;text-underline-offset:5px}.landing-navigation a{box-sizing:border-box;text-align:center;border-radius:5px;flex:1 1 0;justify-content:center;align-items:center;min-width:0;height:44px;min-height:44px;padding:4px;font-size:clamp(.7rem,1.5vw,.94rem);font-weight:700;text-decoration:none;display:inline-flex}.landing-navigation a:is(:hover,:focus-visible){background:#fff6}.landing-navigation .landing-sign-in{background:#fff9e6;border:1px solid #6a864e}.landing-navigation .landing-sign-up{color:#fffbed;background:#42643a}.landing-navigation .landing-sign-in:is(:hover,:focus-visible){background:#e4edcc;border-color:#405f36}.landing-navigation .landing-sign-up:is(:hover,:focus-visible){color:#fffbed;background:#2f5029}.public-landing .landing-navigation a:focus-visible{outline-offset:-3px}.public-landing :is(a,button):focus-visible{outline-offset:2px;outline:2px solid #557b44}.landing-skip{z-index:5;inset-inline-start:20px;background:#fff9e4;border-radius:6px;padding:12px 16px;position:absolute;top:8px;transform:translateY(-160%)}.landing-skip:focus{transform:translateY(0)}.landing-hero{background:radial-gradient(circle at 8% 0,#fffced,#0000 72%);grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:center;gap:clamp(20px,4vw,48px);padding:clamp(24px,4vw,48px);display:grid}.landing-eyebrow{color:#425c34;letter-spacing:.06em;text-transform:uppercase;margin:0 0 10px;font-size:.78rem;font-weight:700}.public-landing h1,.public-landing h2,.public-landing h3{text-wrap:balance;margin:0;font-family:Georgia,Times New Roman,serif;font-weight:700}.public-landing h1{letter-spacing:-.045em;max-width:16ch;font-size:clamp(2rem,4.4vw,3.3rem);line-height:1.08}.public-landing h2{letter-spacing:-.025em;font-size:clamp(1.7rem,3vw,2.2rem);line-height:1.2}.public-landing p{line-height:1.6}.landing-introduction{max-width:58ch;color:var(--landing-muted);margin:18px 0 22px}.landing-actions{flex-wrap:wrap;align-items:center;gap:10px 18px;display:flex}.public-landing .landing-primary{color:#fff7df;background:#426b3b;border-radius:8px;justify-content:center;align-items:center;min-height:48px;padding:12px 20px;font-weight:700;text-decoration:none;transition:background-color .12s;display:inline-flex;box-shadow:0 3px #2d4d28}.public-landing .landing-primary:is(:hover,:focus-visible){background:#305629}.landing-secondary{align-items:center;min-height:44px;padding:8px 0;font-size:.93rem;display:inline-flex}.landing-note{color:var(--landing-muted);margin:14px 0 0;font-size:.82rem}.landing-hero-picture{margin:0;transform:rotate(1deg)}.landing-hero-picture img{border-radius:12px;width:100%;height:auto;display:block}.landing-hero-picture figcaption{color:var(--landing-muted);text-align:center;padding-top:10px;font-size:.79rem}@media (width<=760px){.landing-hero{grid-template-columns:1fr}.landing-hero-picture{max-width:480px;transform:none}.landing-villages{grid-template-columns:1fr}.landing-village{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);display:grid}.landing-navigation{gap:4px}}@media (width<=480px){.landing-navigation{--todori-roll-cap:24px;padding-inline:var(--todori-roll-cap);justify-content:center;gap:2px}.landing-features,.landing-village{grid-template-columns:1fr}.landing-actions{flex-direction:column;align-items:stretch}.landing-secondary{justify-content:center}}@media (prefers-reduced-motion:reduce){.public-landing *{scroll-behavior:auto;transition:none}}:root{color:#f2e7cf;font-synthesis:none;text-rendering:optimizelegibility;background:#27343d;font-family:Inter,Avenir,Segoe UI,sans-serif}*{box-sizing:border-box}body{background-color:#0000;background-image:radial-gradient(circle at 50% -20%,#6c8b9138,#0000 42%),linear-gradient(#27343d,#202c34 72%);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box;background-clip:border-box,border-box;min-width:0;min-height:100vh;margin:0}button,input{font:inherit}button{color:#f2e7cf;cursor:pointer;background:#102239;border:1px solid #415b70;min-height:44px}button:hover,button:focus-visible{background:#17304d;border-color:#d2aa67}button:focus-visible,input:focus-visible{outline-offset:2px;outline:3px solid #78b7ae}.runtime-status{color:#57493e;background:radial-gradient(circle at 85% 12%,#87be5f52,#0000 30%),linear-gradient(145deg,#fffef3,#eee2bf);border:8px solid #ef8b6b;border-radius:12px;place-content:center;justify-items:start;gap:18px;width:min(720px,100% - 32px);min-height:min(420px,100vh - 32px);margin:16px auto;padding:clamp(32px,8vw,88px);display:grid;box-shadow:12px 12px #0913186b}.runtime-status p{max-width:42ch;margin:0;line-height:1.6}.runtime-status button{padding:10px 18px}.runtime-shell{min-height:100vh;padding-top:1px}.app-shell{grid-template-columns:minmax(0,1.45fr) minmax(360px,.55fr);align-items:center;gap:clamp(16px,2vw,32px);width:min(1520px,100%);min-height:100vh;margin:0 auto;padding:clamp(16px,3vw,48px);display:grid}.scene-frame{background:#07111f;border:1px solid #304a61;border-bottom:5px solid #a77d43;min-height:min(78vh,820px);position:relative;overflow:hidden;box-shadow:18px 18px #02060c}.game-host,.game-host canvas{width:100%;height:100%}.game-host{position:absolute;inset:0}.scene-notch{z-index:2;pointer-events:none;background:#c79b55;width:70px;height:12px;position:absolute;top:18px}.scene-notch--left{left:18px}.scene-notch--right{right:18px}.proof-overlay{background:#0b1828;border:1px solid #304a61;border-top:4px solid #c79b55;padding:clamp(22px,3vw,42px);position:relative;box-shadow:12px 12px #02060c}.proof-header{gap:20px;display:grid}.proof-eyebrow{color:#78b7ae;letter-spacing:.12em;text-transform:uppercase;margin:0 0 10px;font-family:Cascadia Mono,SFMono-Regular,monospace;font-size:.75rem}.proof-header h1{color:#fff4da;letter-spacing:-.055em;max-width:9ch;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.7rem,5vw,5.6rem);font-weight:500;line-height:.86}.proof-summary{color:#b9c6cf;max-width:46ch;margin:20px 0 0;line-height:1.65}.locale-switch{gap:8px;display:flex}.locale-switch button{padding:8px 14px}.locale-switch button[aria-pressed=true]{color:#08111d;background:#d8b66f;border-color:#c79b55}.proof-status{color:#d8e2e8;align-items:center;gap:10px;margin:28px 0 16px;font-size:.9rem;display:flex}.status-orb{background:currentColor;border:2px solid #0b1828;outline:1px solid;width:9px;height:9px}.status-orb--ready,.status-orb--restored{color:#78b7ae}.status-orb--lost{color:#d87b65}.proof-metrics{border-top:1px solid #304a61;margin:0}.proof-metrics>div{border-bottom:1px solid #20384d;grid-template-columns:1fr auto;align-items:center;gap:16px;min-height:56px;padding:12px 0;display:grid}.proof-metrics dt{color:#8195a4;letter-spacing:.08em;text-transform:uppercase;font-size:.78rem}.proof-metrics dd{color:#f2e7cf;text-align:right;margin:0;font-family:Cascadia Mono,SFMono-Regular,monospace}.proof-metrics [data-budget=target] dd{color:#8ec8a6}.proof-metrics [data-budget=failed] dd{color:#ef9078}.proof-gate-note{background:#102239;border-left:3px solid #78b7ae;margin:22px 0;padding:16px}.proof-gate-note strong{color:#fff4da}.proof-gate-note p{color:#aebdc7;margin:6px 0 0;font-size:.88rem;line-height:1.5}.input-test label{color:#b9c6cf;margin-bottom:8px;font-size:.82rem;display:block}.input-test>div{grid-template-columns:1fr auto;gap:8px;display:grid}.input-test input{color:#f2e7cf;background:#07111f;border:1px solid #415b70;border-radius:0;min-width:0;min-height:46px;padding:10px 12px}.input-test button{padding:8px 18px}@media (width<=980px){.app-shell{grid-template-columns:1fr;align-items:start}.scene-frame{min-height:min(58vh,620px);box-shadow:9px 9px #02060c}.proof-header h1{max-width:none}}@media (width<=520px){.app-shell{padding:10px}.scene-frame{min-height:42vh}.proof-overlay{box-shadow:none;padding:20px}.input-test>div{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
