:root{color-scheme:dark;font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;background:#080808;color:#fff;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}a{color:inherit;text-underline-offset:.3em}a:focus-visible{outline:2px solid white;outline-offset:5px}button,a{-webkit-tap-highlight-color:transparent}.skip-link{position:absolute;top:-90px;left:12px;background:white;color:black;z-index:20;padding:12px}.skip-link:focus{top:10px}header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:25px 5vw;border-bottom:1px solid #333;font-size:12px;letter-spacing:.08em}header a{text-decoration:none}.hero{text-align:center;padding:60px 5vw 75px}.kicker{font-size:11px;font-weight:700;letter-spacing:.2em;color:#ccc;margin:0 0 22px}.wordmark{font:700 clamp(34px,5vw,68px)/1.06 Georgia,serif;letter-spacing:-.025em;margin:25px auto 38px}.wordmark span{font-size:.85em}.wordmark small{font-weight:400;font-size:.5em;font-style:italic;letter-spacing:.04em}.qhsfy-logo{width:min(700px,85vw);height:auto;object-fit:contain;max-height:220px;margin:10px auto 30px}h1{font-size:clamp(25px,3.4vw,46px);line-height:1.65;font-weight:500;letter-spacing:.08em;margin:25px 0 15px}.lead{color:#ccc;line-height:2;font-size:15px}.school-hero{display:block;max-width:1200px;width:100%;height:auto;margin:42px auto 0;border-radius:2px}.hero-caption{font-size:12px;letter-spacing:.1em;color:#ccc;margin:20px 0 36px}.scroll-link{display:inline-block;font-size:13px;letter-spacing:.13em;text-decoration:none;border-bottom:1px solid #888;padding-bottom:12px}.asset-pending{margin:40px auto;min-height:240px;display:grid;align-content:center;border:1px solid #444;max-width:1100px;color:#aaa}.journey{background:#000;padding:48px 0}.map-stage{max-width:1250px;margin:auto;text-align:center;padding:25px 5vw;position:relative}.stage-copy{position:relative;z-index:2}.stage-copy h2{font-size:clamp(24px,3vw,40px);font-weight:500;letter-spacing:.08em;margin:0 0 12px}.stage-copy p:last-child{font-size:14px;line-height:1.8;min-height:26px;margin:0}.stage-copy .kicker{margin-bottom:14px}.map-wrap{width:min(760px,95%);margin:12px auto;transform-origin:center center}.japan-map{width:100%;height:auto;max-height:70vh;display:block}.prefecture{fill:transparent;stroke:#fff;stroke-width:1.5;stroke-linejoin:round}.prefecture.visited{fill:url(#dots)}.prefecture.hosted{fill:url(#hosted)}.prefecture.future-fill{fill:url(#future)}.map-insets{stroke:none}.legend{display:flex;gap:12px 25px;justify-content:center;flex-wrap:wrap;font-size:11px;letter-spacing:.025em;line-height:1.8}.future-key{display:none;color:#ddd}.stage-foot{font-size:11px;line-height:1.8;color:#bbb;margin:12px auto 0}.ending{display:none;position:absolute;inset:0;align-content:center;justify-items:center;padding:30px 4vw;pointer-events:none}.ending .wordmark{font-size:clamp(35px,5vw,68px);margin-bottom:26px}.ending>p:last-of-type{font-size:clamp(23px,3.5vw,44px);line-height:1.7;letter-spacing:.08em;margin:8px 0}.ending>span{color:#ccc;font-size:15px;margin-top:12px}.vision-static{max-width:1100px;margin:auto;padding:80px 6vw;text-align:center;border-bottom:1px solid #444}.vision-static h2{font-size:clamp(24px,3vw,40px);line-height:1.6;font-weight:500}.vision-static p:last-child{font-size:15px;line-height:2;color:#ccc}.activities{padding:100px max(6vw,calc((100vw - 1100px)/2));}.activities h2,.next h2{font-size:clamp(30px,4vw,54px);font-weight:500;line-height:1.6;margin:0 0 22px}.section-lead{font-size:15px;line-height:2;color:#ccc}.records{list-style:none;padding:0;margin:48px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:0 40px}.records li{border-top:1px solid #555;padding:24px 0 28px;min-width:0}.record-type{font-size:11px;color:#bbb;line-height:1.8;margin:0 0 12px}.records h3{font-size:17px;font-weight:500;line-height:1.8;margin:0 0 12px}.records li>p:not(.record-type){font-size:13px;line-height:1.8;color:#ccc}.records a{font-size:12px}.next{text-align:center;padding:90px 6vw 110px;background:#f3f2ef;color:#090909}.next p:not(.kicker){font-size:14px;line-height:1.9}.next .kicker{color:#555}.button{display:block;width:fit-content;max-width:100%;margin:35px auto 25px;border:1px solid black;padding:18px 26px;text-decoration:none;font-size:14px}.text-link{font-size:13px}footer{padding:40px 6vw;font-size:11px;line-height:1.9;display:flex;align-items:start;gap:20px 40px;flex-wrap:wrap;color:#bbb}footer p{margin:0}footer details{margin-left:auto;max-width:460px}footer summary{cursor:pointer}footer details p{margin:10px 0}.mobile-only{display:none}
/* Static HTML is the baseline. Sticky enhancement starts only after JSON validation. */
.motion .journey{height:var(--journey-height,975svh);padding:0;position:relative}.motion .map-stage{height:100svh;position:sticky;top:0;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:visible;padding:20px 5vw}.motion .map-wrap{width:min(700px,85vw);flex-shrink:1;min-height:0}.motion .japan-map{max-height:62svh}.motion .ending{display:grid;opacity:0}.motion .vision-static{padding-top:80px}.motion.vision-phase .future-key{display:inline}.motion .stage-foot{max-width:85vw}.motion .map-stage>*:not(.ending){will-change:opacity}.motion .map-wrap{will-change:opacity,transform}
@supports not (height:100svh){.motion .journey{height:650vh}.motion .map-stage{height:100vh}.motion .japan-map{max-height:62vh}}
@media(max-width:600px){header{padding:20px 5vw;font-size:10px}.hero{padding:45px 4vw 60px}.hero .wordmark{font-size:40px}h1{font-size:25px;letter-spacing:.035em}.lead{font-size:13px}.school-hero{margin-top:30px}.records{grid-template-columns:1fr}.activities{padding:75px 6vw}.legend{font-size:10px;gap:6px 12px}.stage-copy p:last-child{font-size:12px;max-width:92vw}.motion .map-wrap{width:94vw}.motion .japan-map{max-height:56svh}.map-stage{padding:25px 3vw}.stage-copy h2{font-size:27px}.stage-foot{font-size:10px}.mobile-only{display:block}.vision-static{padding:70px 6vw}.vision-static h2{font-size:25px}footer{display:block}footer>*{display:block;margin-bottom:20px}footer details{margin-left:0}.next{padding:70px 6vw}.qhsfy-logo{max-height:140px}.ending .qhsfy-logo{width:90vw}}
@media(max-height:500px) and (orientation:landscape){.motion .map-stage{display:grid;grid-template-columns:36% 64%;align-content:center;gap:10px;padding:10px 5vw}.motion .map-wrap{grid-column:2;grid-row:1/4;width:100%;margin:0}.motion .japan-map{max-height:88svh}.stage-copy h2{font-size:24px}.stage-copy p:last-child{font-size:11px}.stage-copy .kicker{font-size:9px}.legend{font-size:9px;gap:2px 8px}.stage-foot{font-size:9px}.ending .wordmark{font-size:34px}.ending>p:last-of-type{font-size:22px}.ending .qhsfy-logo{max-height:100px}.mobile-only{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.motion .journey{height:auto;padding:48px 0}.motion .map-stage{position:relative;display:block;height:auto}.motion .ending{display:none}.motion .map-wrap{transform:none!important;opacity:1!important}.motion .stage-copy,.motion .legend,.motion .stage-foot{opacity:1!important}.future-key{display:none!important}}

.activity-label{min-width:0}#stage-title{overflow-wrap:anywhere}.prefecture{transition:fill-opacity .22s ease}.prefecture.current-prefecture{stroke-width:3.5;stroke:#fff}.prefecture.future-fill{stroke:#bbb}@media(prefers-reduced-motion:reduce){.activity-label{opacity:1!important}.prefecture{transition:none}}

/* Stable luminous pixels: no pulsing or blinking, including reduced motion. */
.prefecture{fill:url(#digital-idle);stroke:#888;stroke-width:1.5;stroke-linejoin:miter}.prefecture:is(.visited,.hosted,.prep,.recorded,.remote){stroke:#ddd}.prefecture.future-fill{stroke:#999}.prefecture.current-prefecture{stroke:#fff;stroke-width:3}.legend>span:first-child{color:#fff}.future-key{color:#aaa}

/* White nationwide surface; only verified venues turn emerald. */
.prefecture{fill:url(#digital-idle);stroke:#aaa}.prefecture:is(.visited,.hosted,.prep,.recorded,.remote){stroke:#6ee7b7}.prefecture.current-prefecture{stroke:#a7f3d0;stroke-width:3}.prefecture.future-fill{stroke:#aaa}.legend{align-items:center}.legend>span{display:inline-flex;align-items:center;gap:5px}.legend-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.white-dot{background:#fff}.emerald-dot{background:#34d399;box-shadow:0 0 6px #10b981}.future-key{color:#ddd}
.legend .future-key{display:none}.motion.vision-phase .legend .future-key{display:inline-flex}

/* The Universe concept family: quiet gold, editorial spacing, fade-only motion. */
:root{--paper:#f8f5ef;--muted:#b7bfd1;--gold:#e5b86b;--line:rgba(255,255,255,.18);background:#080808;color:var(--paper);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;-webkit-font-smoothing:antialiased}
body{background:#080808}html{scroll-padding-top:88px}a{text-decoration:none}a:focus-visible{outline-color:var(--gold)}::selection{background:var(--gold);color:#080808}
.site-header{position:fixed;z-index:80;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px clamp(24px,5vw,90px);border-bottom:1px solid transparent;background:linear-gradient(180deg,rgba(0,0,0,.82),transparent);transition:background .35s,border-color .35s}
.site-header.scrolled{background:rgba(5,7,10,.92);border-color:rgba(255,255,255,.08)}.mini-logo{display:flex;flex-direction:column;gap:5px;font:600 10px/1 Georgia,serif;letter-spacing:.22em;white-space:nowrap}.mini-logo span{font:400 17px/1.1 Didot,"Bodoni 72",Georgia,serif;letter-spacing:.1em}.site-header nav{display:flex;gap:clamp(18px,2.5vw,44px)}.site-header nav a{font:600 10px/1 Arial,sans-serif;letter-spacing:.22em;color:var(--paper);opacity:.8;transition:opacity .25s,color .25s}.site-header nav a:hover,.site-header nav a:focus-visible{opacity:1;color:var(--gold)}
.hero{padding:140px 6vw 110px}.kicker{font:700 11px/1.5 Arial,sans-serif;letter-spacing:.25em;color:var(--gold);margin-bottom:28px}.qhsfy-logo{width:min(620px,84vw);margin:0 auto 32px}h1{font-size:clamp(30px,4.2vw,62px);font-weight:600;line-height:1.55;letter-spacing:.08em;margin:15px 0 24px}.lead{font-size:clamp(13px,1.1vw,17px);font-weight:500;line-height:2.15;letter-spacing:.08em;color:var(--muted)}.school-hero{margin-top:55px;border-radius:0}.hero-caption{font-size:11px;letter-spacing:.16em;color:var(--muted);margin:26px 0 42px}.scroll-link{border:1px solid rgba(255,255,255,.55);padding:17px 24px;font-size:11px;font-weight:600;letter-spacing:.15em;transition:background .3s,color .3s}.scroll-link:hover{background:var(--paper);color:#080808}
.journey{background:#000}.motion .map-stage{padding:86px 5vw 28px}.stage-copy h2{font-size:clamp(24px,2.8vw,40px);font-weight:600;line-height:1.4;letter-spacing:.045em}.stage-copy p:last-child{color:var(--muted);letter-spacing:.03em}.stage-copy .kicker{margin-bottom:18px}.motion .japan-map{max-height:54svh}.legend{color:var(--paper)}.stage-foot{color:var(--muted)}.motion .map-wrap{will-change:opacity}.ending>p:last-of-type{font-weight:600}.ending>span{color:var(--muted);font-size:12px;letter-spacing:.15em}
.vision-static{padding:clamp(100px,11vw,160px) 6vw;border-color:var(--line)}.vision-static h2{font-size:clamp(28px,3.4vw,48px);font-weight:600;letter-spacing:.06em}.vision-static p:last-child{color:var(--muted);line-height:2.2}
.activities{padding:clamp(105px,12vw,175px) max(7vw,calc((100vw - 1200px)/2))}.activities h2,.next h2{font-size:clamp(36px,4.8vw,70px);font-weight:600;line-height:1.4;letter-spacing:.04em}.section-lead{color:var(--muted);line-height:2.2}.records{gap:0 55px;margin-top:65px}.records li{border-color:var(--line);padding:32px 0 36px}.record-type{color:var(--gold);letter-spacing:.05em}.records h3{font-size:clamp(18px,1.5vw,23px);font-weight:600;line-height:1.7}.records li>p:not(.record-type){color:var(--muted)}.records a{display:inline-block;font-size:11px;letter-spacing:.1em;border-bottom:1px solid rgba(255,255,255,.35);padding-bottom:5px}.records a:hover{color:var(--gold)}
.next{background:#080b14;color:var(--paper);padding:clamp(110px,12vw,170px) 6vw}.next .kicker{color:var(--gold)}.next p:not(.kicker){color:var(--muted)}.button{border-color:rgba(255,255,255,.62);font-size:12px;font-weight:600;letter-spacing:.1em;padding:18px 25px;transition:background .3s,color .3s}.button:hover{background:var(--paper);color:#080b14}.text-link{font:400 15px/1.5 Georgia,serif;letter-spacing:.08em}footer{border-top:1px solid var(--line);padding:44px 6vw;color:var(--muted)}
.fade-ready .fade-item{opacity:0;transition:opacity .55s ease;will-change:opacity}.fade-ready .fade-item.is-visible,.fade-ready .fade-item:focus-within{opacity:1}
@media(max-width:600px){html{scroll-padding-top:78px}.site-header{padding:19px 5vw;gap:12px}.mini-logo{font-size:8px;gap:4px}.mini-logo span{font-size:13px;letter-spacing:.07em}.site-header nav{gap:12px}.site-header nav a{font-size:8px;letter-spacing:.1em}.hero{padding:115px 4vw 85px}.hero .kicker{font-size:9px;letter-spacing:.2em}.qhsfy-logo{margin-bottom:26px}h1{font-size:29px;letter-spacing:.025em}.school-hero{margin-top:36px}.hero-caption{font-size:10px}.scroll-link{font-size:10px;padding:16px 20px}.motion .map-stage{padding:80px 4vw 24px}.stage-copy h2{font-size:24px}.stage-copy .kicker{font-size:9px;margin-bottom:16px}.motion .japan-map{max-height:48svh}.motion .map-wrap{width:92vw}.stage-copy p:last-child{font-size:11px}.legend{font-size:9px;gap:6px 12px}.stage-foot{font-size:9px;line-height:1.7}.vision-static{padding:90px 6vw}.activities{padding:100px 6vw}.records{margin-top:45px}.records li{padding:28px 0 30px}.next{padding:100px 6vw}.ending>p:last-of-type{font-size:25px}}
@media(max-height:500px) and (orientation:landscape){.motion .map-stage{padding:68px 4vw 12px;grid-template-columns:38% 62%;gap:6px}.motion .japan-map{max-height:72svh}.stage-copy h2{font-size:20px}.stage-copy .kicker{font-size:8px;margin-bottom:10px}.stage-copy p:last-child{font-size:10px}.legend{font-size:8px}.stage-foot{font-size:8px}.site-header{padding:14px 5vw}.ending{padding-top:70px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.fade-ready .fade-item{opacity:1;transition:none;will-change:auto}.site-header,.scroll-link,.button,.site-header nav a{transition:none}}
@media print{.fade-ready .fade-item{opacity:1!important}.site-header{position:static}}

/* Bold prefecture cartogram: island cells inherit the owning prefecture fill. */
.map-note{display:block;margin:0 0 5px;color:var(--muted);letter-spacing:.06em}.prefecture{stroke-width:1.4}.prefecture text{pointer-events:none}.prefecture.current-prefecture{stroke-width:3}.motion .map-wrap{width:min(780px,92vw)}.motion .japan-map{max-height:56svh}
@media(max-width:600px){.motion .map-wrap{width:96vw}.motion .japan-map{max-height:49svh}.map-note{font-size:9px;margin-bottom:4px}}
@media(max-height:500px) and (orientation:landscape){.motion .map-wrap{width:100%}.motion .japan-map{max-height:72svh}.map-note{font-size:8px}}
