/* Site chrome is scoped so the preserved game keeps its existing visual rules. */
.site-page{margin:0;background:#f5f3ec;color:#17372e;font-family:'Yu Gothic UI','Hiragino Kaku Gothic ProN',Meiryo,system-ui,sans-serif;line-height:1.9;color-scheme:light;font-synthesis:none}
.site-page *,.site-header *,.site-footer *{box-sizing:border-box}
.site-header,.site-footer{font-family:'Yu Gothic UI','Hiragino Kaku Gothic ProN',Meiryo,system-ui,sans-serif;line-height:1.65;font-size:14px;color:#f5f3ec;background:#17372e}
.site-header{border-bottom:1px solid #3c584d}
.site-header-inner{max-width:1160px;margin:auto;padding:21px 32px;display:flex;justify-content:space-between;align-items:center;gap:28px}
.site-brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none;letter-spacing:.04em;line-height:1.5;font-weight:700;font-size:15px}
.site-brand img{width:39px;height:39px}.site-brand small{display:block;font-size:10px;font-weight:500;letter-spacing:.15em;color:#c8d0c4}
.site-menu{position:relative}.site-menu summary{display:none}
.site-nav{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.site-nav a{font-size:13px;color:#e7eadd;text-decoration:none;padding:5px 0;border-bottom:1px solid transparent}
.site-nav a:hover,.site-nav a[aria-current=page]{border-color:#dfbf70;color:#ffe2a0}
.site-nav a[href='/play/']{padding:8px 16px;border:1px solid #aaa67a;border-radius:2px}
.site-skip{position:absolute;top:6px;left:8px;transform:translateY(-200%);background:#fff;color:#17372e;padding:9px 16px;z-index:1000}
.site-skip:focus{transform:translateY(0)}
.site-page a{color:#20684e;text-underline-offset:4px}.site-page a:hover{text-decoration-thickness:2px}
.site-page a:focus-visible,.site-header a:focus-visible,.site-header summary:focus-visible,.site-footer a:focus-visible{outline:3px solid #c59636;outline-offset:5px}
.site-main{max-width:1160px;margin:0 auto;padding:0 32px 82px}.site-article{max-width:780px;margin:0 auto}
.site-title{padding:60px 0 32px;border-bottom:1px solid #cdd2c3;margin-bottom:30px}
.site-title h1,.site-hero h1{font-family:'Yu Mincho','Hiragino Mincho ProN',Georgia,serif;font-weight:600;line-height:1.5;letter-spacing:.035em;color:#17372e;margin:18px 0}
.site-title h1{font-size:36px}.site-title .site-intro{max-width:690px}
.site-kicker{font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:#65745b;margin:0 0 15px}
.site-intro{font-size:15px;line-height:2.1;color:#486057}
.site-hero{display:grid;grid-template-columns:1.12fr 1fr;align-items:center;gap:50px;padding:65px 0 70px;border-bottom:1px solid #cdd2c3}
.site-hero h1{font-size:clamp(32px,3.3vw,46px);margin:20px 0}.site-catch{font-weight:600;font-size:16px;margin:0 0 22px}
.site-actions{display:flex;align-items:center;flex-wrap:wrap;gap:22px;margin-top:30px}
.site-page .site-button{display:inline-flex;align-items:center;gap:26px;justify-content:center;text-decoration:none;background:#214c3d;color:#fff;padding:15px 23px;border-radius:2px;font-size:15px;font-weight:700;box-shadow:0 4px 0 #b6c0aa}.site-page .site-button:hover{background:#153b2e;box-shadow:0 4px 0 #94aa83}
.site-text-link{font-size:13px}.site-caption{font-size:11px;color:#6c7766;margin-top:19px}
.site-track{height:365px;position:relative;background:#e6e9d8;overflow:hidden;border:1px solid #c9cfb7;border-radius:180px;transform:rotate(-12deg);color:#17372e}
.site-track-ring{position:absolute;inset:20px;border:1px solid #a6b08c;border-radius:160px}.site-track-inner{inset:37px;border-color:#b4bd9c}
.site-track-center{position:absolute;inset:60px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;transform:rotate(12deg)}
.site-track-center span{font-size:10px;letter-spacing:.21em}.site-track-center strong{font-family:Georgia,serif;font-size:45px;line-height:1.07;font-weight:400;margin:18px 0 22px}
.site-runner{position:absolute;right:34px;top:54px;background:#214c3d;border:5px solid #f4e5b6;color:#f4e5b6;width:49px;height:49px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:Georgia,serif;transform:rotate(12deg)}
.site-track-label{position:absolute;bottom:10px;left:130px;font-size:9px;letter-spacing:.25em}
.site-section{margin-top:48px;scroll-margin-top:20px}.site-section h2,.site-note h2,.site-contact-box h2,.site-timeline h2{font-family:'Yu Mincho','Hiragino Mincho ProN',Georgia,serif;font-size:24px;font-weight:600;line-height:1.6;letter-spacing:.04em;margin:0 0 20px;color:#214738}
.site-section h3{font-size:16px;margin:28px 0 9px}.site-section p,.site-timeline p{font-size:15px;margin:14px 0}.site-section ul,.site-section ol{font-size:15px;padding-left:1.65em}.site-section li{margin:10px 0}
.site-features{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;margin-top:35px}.site-features article{border-top:2px solid #80977a;padding-top:19px}.site-number{font-family:Georgia,serif;color:#8d9b7c;font-size:27px}.site-features h3{margin:8px 0}.site-features p{font-size:14px;color:#486057}
.site-note{background:#e8ebdf;border-left:3px solid #78925d;padding:25px 28px;margin-top:45px}.site-note h2{font-family:inherit;font-size:17px;margin:0 0 9px}.site-note p{font-size:14px;margin:0;line-height:1.9}
.site-toc{display:flex;flex-wrap:wrap;gap:10px 22px;padding:18px 0;border-bottom:1px solid #cdd2c3;font-size:13px}.site-definition{margin:25px 0}.site-definition>div{display:grid;grid-template-columns:170px 1fr;gap:20px;border-bottom:1px solid #d7dbcd;padding:20px 0}.site-definition dt{font-weight:700;font-size:14px}.site-definition dd{font-size:14px;margin:0}
.site-contact-box{padding:28px 0;border-bottom:1px solid #cdd2c3}.site-contact-box p{font-size:14px}.site-contact-box .site-email{font-size:21px;overflow-wrap:anywhere}.site-timeline article{position:relative;border-bottom:1px solid #cdd2c3;padding:26px 0 32px}.site-timeline h2{font-size:23px}
.site-footer-inner{max-width:1160px;margin:auto;padding:36px 32px 25px}.site-footer-nav{display:flex;flex-wrap:wrap;gap:12px 24px;margin:0 0 25px}.site-footer-nav a{color:#e7eadd;text-decoration:underline;text-underline-offset:4px;font-size:12px}.site-footer p{color:#c8d0c4;font-size:11px;margin:6px 0}.site-footer .site-copyright{margin-top:18px;font-size:10px;letter-spacing:.04em}
.site-game-mount{min-height:50vh}.site-game-noscript{max-width:760px;padding:24px;margin:auto;color:#fff}.site-game-noscript a{color:#ffe2a0}
@media(min-width:821px){.site-menu:not([open])>.site-nav{display:flex}}
@media(max-width:820px){.site-header-inner{padding:16px 20px;gap:14px;align-items:flex-start}.site-brand{font-size:13px}.site-brand small{font-size:9px}.site-brand img{width:32px;height:32px}.site-menu summary{display:block;list-style:none;cursor:pointer;border:1px solid #91a68b;padding:7px 12px;font-size:12px;border-radius:2px}.site-menu summary::-webkit-details-marker{display:none}.site-menu[open] .site-nav{position:absolute;right:0;top:48px;z-index:100;min-width:220px;display:flex;flex-direction:column;align-items:stretch;background:#17372e;border:1px solid #60765d;padding:16px 23px;gap:13px;box-shadow:0 10px 20px #001b2740}.site-menu:not([open])>.site-nav{display:none}.site-nav a{padding:7px 0}.site-hero{grid-template-columns:1fr;gap:38px;padding:40px 0}.site-track{height:290px;max-width:390px;width:100%;margin:auto;transform:rotate(-7deg)}.site-track-center{transform:rotate(7deg)}.site-track-center strong{font-size:39px;margin:12px 0}.site-track-label{left:105px}.site-hero h1{font-size:35px}.site-main{padding:0 23px 54px}.site-features{gap:20px}.site-title{padding-top:36px}.site-title h1{font-size:29px}.site-footer-inner{padding:30px 23px 25px}}
@media(max-width:520px){.site-features{grid-template-columns:1fr;gap:24px}.site-features article{padding-top:15px}.site-number{float:right}.site-section{margin-top:36px}.site-section h2{font-size:22px}.site-title h1{font-size:28px}.site-actions{gap:20px}.site-catch{font-size:14px}.site-hero .site-intro{font-size:14px}.site-wide-only{display:none}.site-definition>div{grid-template-columns:1fr;gap:6px}.site-note{padding:21px}.site-track{height:275px}.site-section p{font-size:14px}.site-footer-nav{gap:15px 22px}}
@media(prefers-reduced-motion:reduce){.site-page{scroll-behavior:auto}}

/* Separate responsive navigation avoids relying on closed details content at desktop widths. */
@media(min-width:821px){.site-menu{display:none}.site-desktop-nav{display:flex}}
@media(max-width:820px){.site-desktop-nav{display:none}}

.site-header .site-brand{color:#f5f3ec}.site-header .site-nav a{color:#e7eadd}.site-header .site-nav a:hover,.site-header .site-nav a[aria-current=page]{color:#ffe2a0}

/* Visible public copy below the React game. These rules never target game elements. */
.site-play-description{background:#f5f3ec;color:#17372e;color-scheme:light;font-family:'Yu Gothic UI','Hiragino Kaku Gothic ProN',Meiryo,system-ui,sans-serif;font-size:16px;line-height:1.95;overflow-wrap:anywhere}
.site-play-description-inner{box-sizing:border-box;max-width:800px;margin:0 auto;padding:52px 32px 64px}
.site-play-description section+section{margin-top:36px;padding-top:32px;border-top:1px solid #cdd2c3}
.site-play-description h2{margin:0 0 20px;color:#214738;font-family:'Yu Mincho','Hiragino Mincho ProN',Georgia,serif;font-size:25px;font-weight:600;line-height:1.6;letter-spacing:.025em}
.site-play-description h3{margin:30px 0 12px;font-size:17px;font-weight:700;line-height:1.75;color:#214738}
.site-play-description p{margin:16px 0}.site-play-description p:last-child{margin-bottom:0}
.site-play-description ul{margin:18px 0;padding-left:1.6em}.site-play-description li{margin:6px 0}
.site-play-description a{color:#20684e;text-decoration:underline;text-underline-offset:4px}.site-play-description a:hover{text-decoration-thickness:2px}.site-play-description a:focus-visible{outline:3px solid #c59636;outline-offset:4px}
@media(max-width:520px){.site-play-description-inner{padding:36px 22px 44px}.site-play-description{font-size:15px}.site-play-description h2{font-size:22px}.site-play-description h3{font-size:16px}.site-play-description section+section{margin-top:30px;padding-top:26px}}
