@media (width<=690px){:root{--todori-roll-height:56px;--todori-roll-cap:44px}.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:clamp(30px, 5.8vw, 64px);--todori-cloud-overlap:clamp(24px, 6vw, 64px);--todori-sheet-inset:clamp(13px, 3.45vw, 38px)}.todori-scroll-bar,.todori-entry-sheet{--todori-scroll-background:url(/assets/ui/todori-scroll-cap-v2.svg) left center / var(--todori-roll-cap) 100% no-repeat, url(/assets/ui/todori-scroll-cap-end-v2.svg) right center / var(--todori-roll-cap) 100% no-repeat, linear-gradient(#d4eca5 0 7%, #b9dd85 12% 84%, #9fc575 94%, #789a55 98%) center / calc(100% - var(--todori-roll-cap)) calc(100% - 12px) no-repeat}.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:var(--todori-scroll-background);position:relative}.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);background:var(--todori-scroll-background);pointer-events:none;position:absolute}.todori-entry-sheet:before{top:calc(-1 * var(--todori-roll-height))}.todori-entry-sheet:after{bottom:calc(-1 * var(--todori-roll-height))}@media (width<=690px){:root{--todori-roll-height:56px;--todori-roll-cap:44px}.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}.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 img{aspect-ratio:16/10;object-fit:cover;width:100%;height:auto;display:block}.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-footer{color:#f4ead2;flex-wrap:wrap;justify-content:space-between;gap:12px;width:min(1100px,100%);margin:0 auto;padding:16px 0 24px;display:flex}.landing-footer nav{flex-wrap:wrap;align-items:center;gap:6px;font-size:.85rem;display:flex}.landing-footer a{align-items:center;min-height:44px;padding:8px;display:inline-flex}.landing-footer button{min-height:44px;color:inherit;background:0 0;border-color:#0000;border-radius:6px;padding:8px 12px}.landing-footer button[aria-pressed=true]{color:#c6ee97;text-underline-offset:5px;text-decoration:underline}.landing-footer button:is(:hover,:focus-visible){background:#354b42;border-color:#a9ca8e}.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}.landing-scroll-end{margin-top:-4px}.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:#f9f3d7}.public-landing .landing-navigation a:focus-visible{outline-offset:-3px}.public-landing :is(a,button):focus-visible{outline-offset:3px;outline:3px solid #37796c}.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-village img{aspect-ratio:auto;height:100%}.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-village img{aspect-ratio:16/9;height:auto}.landing-actions{flex-direction:column;align-items:stretch}.landing-secondary,.landing-footer,.landing-footer nav{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}}
