:root{--bg:#100d0b;--panel:#1c1511;--gold:#d8b56d;--white:#f8f0dd;--red:#d33925;--muted:#b8ad9a;--line:#78613a55}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--white);font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;line-height:1.8}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #ffe2a1;outline-offset:6px}button:disabled{cursor:default}h1,h2,h3,p{margin-top:0}h1,h2,h3,.brand b,.footer-brand{font-family:"Yu Mincho","Hiragino Mincho ProN",serif}h2{font-size:clamp(30px,3.9vw,54px);line-height:1.5;font-weight:600;letter-spacing:.06em}h3{font-weight:500}.review{padding:6px 5%;text-align:center;font-size:10px;letter-spacing:.18em;color:#ead6ab;background:#302117;border-bottom:1px solid var(--line)}.review span{margin-left:18px;font-size:10px;letter-spacing:.06em}header{position:absolute;z-index:20;top:32px;left:5%;right:5%;height:92px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:14px}.brand b{font-size:42px;letter-spacing:.04em;color:var(--gold);font-weight:900}.brand span{font-size:8px;line-height:1.5;letter-spacing:.13em;color:var(--gold)}nav{display:flex;gap:35px;font-size:13px}nav a{padding:16px 0;transition:color .2s}nav a:hover{color:var(--gold)}nav small{display:inline-block;margin-left:5px;padding:0 5px;border:1px solid var(--line);font-size:8px;color:var(--muted)}.hero{position:relative;min-height:750px;height:calc(100svh - 31px);max-height:1000px;overflow:hidden;background:radial-gradient(ellipse at 77% 72%,#56201555,transparent 52%),#100d0b}.hero:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.17;background-image:url('/assets/roadmap.png');background-size:cover;background-position:center;mask-image:linear-gradient(100deg,transparent 8%,#000 100%)}.hero-copy{position:relative;z-index:3;padding:190px 0 100px 9%;width:60%}.eyebrow{font-family:Arial,sans-serif;font-size:10px;font-weight:600;letter-spacing:.3em;color:var(--gold);margin-bottom:25px}.hero h1{font-size:clamp(58px,7.5vw,108px);line-height:1.23;letter-spacing:.06em;font-weight:600;margin:0 0 35px}.hero-lead{font-size:18px;line-height:2;letter-spacing:.16em}.hero-desc{font-size:11px;color:var(--muted);letter-spacing:.08em;margin:30px 0 22px}.button{display:inline-flex;justify-content:space-between;gap:55px;align-items:center;font-size:12px;padding:17px 25px;border:1px solid var(--gold);transition:background .25s}.button:hover{background:#d8b56d1a}.button.primary{background:var(--red);border-color:var(--red);color:#fff}.button.primary:hover{background:#a92a1c}.hero-art{position:absolute;z-index:2;inset:18% 0 0 47%;display:flex;justify-content:center;align-items:center}.sun{position:absolute;background:radial-gradient(circle at 35% 20%,#b92821,#61120d 72%);width:30vw;height:30vw;border-radius:50%;filter:blur(.3px);opacity:.8}.kanji{font-family:"Yu Mincho",serif;font-size:clamp(100px,17vw,245px);font-weight:900;line-height:1.02;color:var(--gold);transform:rotate(-8deg);letter-spacing:-.1em;text-shadow:0 12px 60px #000;position:relative;opacity:.95}.vertical{writing-mode:vertical-rl;position:absolute;right:10%;top:11%;font-family:serif;letter-spacing:.3em;font-size:14px}.petals{position:absolute;font-size:70px;color:#e1a5a0;left:7%;bottom:13%;transform:rotate(18deg);opacity:.8;animation:petal 9s ease-in-out infinite}.hero-glow{position:absolute;width:600px;height:300px;background:#c72a151b;filter:blur(80px);right:-20px;bottom:-100px;animation:glow 5s ease-in-out infinite}.asset-note{position:absolute;z-index:3;bottom:40px;right:7%;color:#ddc6a3;font-size:9px;letter-spacing:.1em}.scroll-hint{position:absolute;bottom:35px;left:9%;font:8px Arial;letter-spacing:.22em;color:var(--muted)}.section{padding:110px 9%}.story{display:grid;grid-template-columns:1fr 1fr;gap:12%;border-bottom:1px solid var(--line);background:linear-gradient(120deg,#21171022,transparent)}.story-text{padding:10px 0}.large-copy{font:27px/1.9 "Yu Mincho",serif;letter-spacing:.15em}.story-text>p:not(.large-copy){font-size:13px;line-height:2.2;color:var(--muted)}.note{font-size:11px!important;line-height:1.9;color:var(--muted)!important;letter-spacing:.02em}.road-section{padding:100px 3% 70px;background:#070707}.section-heading{display:flex;align-items:end;justify-content:space-between;padding:0 6.4% 35px}.section-heading h2{margin-bottom:0}.section-heading>p{font-size:13px;text-align:right;line-height:2}.map-wrap{position:relative;max-width:1600px;margin:auto;border:1px solid #80623188;box-shadow:0 0 70px #d3421110}.map-wrap>img{display:block;width:100%;height:auto}.map-controls{position:absolute;inset:0}.map-point{position:absolute;background:transparent;border:1px solid transparent;border-radius:20%;transition:background .2s,box-shadow .2s}.map-point:hover,.map-point:focus-visible{background:#e3ae4812;box-shadow:0 0 22px #eabe6155;border-color:#d8b56d88}.truck{left:7%;top:22%;width:20%;height:23%}.music{left:39%;top:20%;width:19%;height:19%}.dance{left:40%;top:41%;width:23%;height:20%}.costume{left:75%;top:43%;width:20%;height:23%}.recruit{left:5%;top:53%;width:22%;height:23%}.practice{left:46%;top:69%;width:26%;height:16%}.festival{left:76%;top:3%;width:21%;height:29%}.stamp{display:flex;align-items:center;justify-content:center;position:absolute;width:clamp(52px,9vw,140px);aspect-ratio:1;right:-5%;top:-12%;border:clamp(3px,.45vw,7px) double #f24330;border-radius:5px;color:#f24330;font:900 clamp(45px,7.7vw,118px)/1 "Yu Mincho",serif;transform:rotate(-17deg);text-shadow:0 1px #2d100b;box-shadow:0 0 0 2px #e8362822,0 4px 10px #0009;background:#14090635;pointer-events:none}.costume .stamp{transform:rotate(15deg);right:5%;top:-4%}.task-list{max-width:1280px;display:grid;grid-template-columns:repeat(3,1fr);margin:30px auto 0;border-top:1px solid var(--line);border-left:1px solid var(--line)}.task-list button{background:none;border:0;border-bottom:1px solid var(--line);border-right:1px solid var(--line);text-align:left;display:flex;align-items:center;gap:12px;padding:18px;font-size:13px}.task-list button:hover{background:#d8b56d0c}.task-list span{font:10px Arial;color:var(--gold)}.task-list em{margin-left:auto;color:#a7977b;font-size:9px;font-style:normal;white-space:nowrap}.task-list .done{color:#e65943}.map-note{text-align:center;color:#ab987a;font-size:10px;margin:22px 0 0}.film-section{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:center;border-bottom:1px solid var(--line)}.film-section h2{font-size:clamp(30px,3.2vw,46px)}.film-section p:not(.eyebrow){font-size:13px;color:var(--muted)}.film-placeholder{aspect-ratio:16/11;background:linear-gradient(140deg,#32251a88,#130e0b),url('/assets/roadmap.png') center/cover;border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:15px 15px 0 #33231933}.film-mark{font-size:23px;color:var(--gold);border:1px solid var(--gold);width:70px;height:70px;text-align:center;line-height:70px;border-radius:50%;padding-left:4px}.film-placeholder p{color:var(--white)!important;font-family:serif;font-size:20px!important;margin:18px 0 4px}.film-placeholder small{font-size:10px;color:#c7b89c}.ways{display:grid;grid-template-columns:repeat(3,1fr);margin-top:50px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.ways>a{position:relative;padding:35px 26px 65px;border-right:1px solid var(--line);transition:background .3s}.ways>a:first-child{padding-left:0}.ways>a:last-child{border-right:0}.ways>a:hover{background:#d8b56d0a}.way-number{font:9px Arial;letter-spacing:.16em;color:var(--gold)}.ways h3{font-size:26px;margin:28px 0 10px}.ways p{font-size:12px;color:var(--muted)}.arrow{position:absolute;right:25px;bottom:25px;font-size:24px;color:var(--gold)}.festival-section{padding-top:65px;padding-bottom:100px;display:grid;grid-template-columns:1fr 1fr;gap:8%;background:radial-gradient(ellipse at 10% 100%,#70221733,transparent 70%)}.festival-section h2{font-size:clamp(26px,3vw,40px)}.festival-info{border-left:1px solid var(--gold);padding-left:35px}.festival-info>p:first-child{color:var(--gold);font-size:11px;letter-spacing:.1em}.festival-info h3{font-size:25px;margin:10px 0}.festival-info p{font-size:12px}.festival-info small{color:var(--muted);font-size:10px}footer{border-top:1px solid var(--line);padding:55px 9% 25px;display:flex;gap:28px;align-items:center;flex-wrap:wrap;background:#090807}.footer-brand{font-size:43px;color:var(--gold)}footer p{font-size:11px;margin:0}footer small{color:var(--muted);font-size:9px}footer>div{margin-left:auto;display:flex;gap:25px;font-size:10px}footer>small{flex-basis:100%;text-align:right;margin-top:30px;font-family:Arial;letter-spacing:.07em}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;z-index:100;top:-100px;left:10px;background:var(--gold);color:#000;padding:10px}.skip:focus{top:10px}dialog{width:min(620px,90vw);border:1px solid #927042;padding:50px;background:#18110d;color:var(--white);max-height:88svh;overflow:auto;box-shadow:0 20px 80px #000a}dialog::backdrop{background:#000b;backdrop-filter:blur(6px)}dialog h2{font-size:34px;margin:10px 0 15px}.dialog-close{position:absolute;right:15px;top:12px;background:transparent;border:0;font-size:30px;min-width:44px;min-height:44px}#dialog-description{font-size:13px;line-height:2;margin:22px 0}.status-label{font-size:10px;border:1px solid #795e36;padding:5px 10px;color:var(--gold)}.dialog-media{aspect-ratio:16/6;background:#0e0b09;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;flex-direction:column;color:var(--muted);font-size:11px;margin:25px 0}.dialog-media p{margin:8px 0}.dialog-media span{font-size:20px;color:var(--gold)}dialog .button{margin-top:15px}.subpage{padding:175px 9% 100px;min-height:80vh;background:radial-gradient(ellipse at 100% 0%,#6821152e,transparent 50%)}.back-link{display:block;font-size:11px;color:var(--muted);margin-bottom:48px}.subpage h1{font-size:clamp(40px,6vw,75px);line-height:1.45;letter-spacing:.08em;margin-bottom:30px}.intro{font-size:14px;color:var(--muted);max-width:650px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding:70px 0}.detail-grid section{border-top:1px solid var(--line);padding-top:25px}.detail-grid span{color:var(--gold);font:11px Arial}.detail-grid h2{font-size:24px;margin:15px 0}.detail-grid p{font-size:13px;color:var(--muted)}.form-preview{padding:40px;background:#24180f55;border:1px solid var(--line);margin-bottom:60px}.form-preview h2{font-size:28px}.form-preview p{font-size:13px}.form-preview small{display:block;font-size:10px;color:var(--muted);margin-top:18px}.inactive-action{display:inline-block;margin-top:15px;padding:14px 22px;border:1px solid #7c694c;color:#c2b290;background:#47362533;font-size:12px}.legal-block{max-width:800px}.legal-block h2{font-size:25px;margin-top:40px}.legal-block p{font-size:13px;line-height:2.1;color:var(--muted)}.reveal{transition:opacity .8s,transform .8s}.js .reveal:not(.visible){opacity:0;transform:translateY(18px)}@keyframes petal{0%,100%{transform:translateY(0) rotate(18deg)}50%{transform:translateY(-15px) rotate(35deg)}}@keyframes glow{50%{opacity:.45;transform:scale(1.15)}}
@media(min-width:1600px){.hero-copy{padding-top:210px}}
@media(max-width:850px){nav{gap:18px;font-size:11px}.hero{min-height:720px;max-height:950px}.hero-copy{padding:190px 0 90px 7%;width:70%}.hero h1{font-size:70px}.hero-art{inset:20% -5% 0 49%}.kanji{font-size:170px}.sun{width:37vw;height:37vw}.vertical{right:12%;font-size:11px}.section{padding:80px 7%}.story{gap:8%}.story-text .large-copy{font-size:23px}.section-heading{align-items:start}.section-heading>p{font-size:11px;max-width:45%}.task-list{grid-template-columns:repeat(2,1fr)}.film-section{gap:6%}.ways h3{font-size:21px}.ways>a{padding-left:20px;padding-right:15px}.ways p{font-size:10px}.festival-section{grid-template-columns:1fr;gap:28px}.festival-info{padding-left:25px}footer{padding:40px 7% 20px}}
@media(max-width:560px){.review{font-size:8px;padding:6px 10px;letter-spacing:.08em}.review span{font-size:8px;margin-left:10px}header{top:28px;height:105px;align-items:flex-start;flex-wrap:wrap;padding-top:8px;gap:0;left:6%;right:6%}.brand b{font-size:32px}.brand span{font-size:7px}.brand{gap:10px}nav{width:100%;gap:0;justify-content:space-between;font-size:10px;margin-top:-8px}nav a{padding:8px 0 10px}nav small{font-size:7px;margin-left:2px}.hero{height:calc(100svh - 28px);min-height:680px;max-height:850px}.hero-copy{padding:160px 0 90px 7%;width:90%}.hero-copy .eyebrow{font-size:8px;letter-spacing:.17em;margin-bottom:28px}.hero h1{font-size:58px;line-height:1.3;margin-bottom:24px}.hero-lead{font-size:13px;line-height:2.2;letter-spacing:.13em}.hero-desc{font-size:9px;margin:23px 0 18px}.button{font-size:11px;padding:14px 20px;gap:35px}.hero-art{inset:24% -19% 1% 45%;opacity:.7}.kanji{font-size:155px;opacity:.62}.sun{width:230px;height:230px;opacity:.6}.vertical{display:none}.hero:after{opacity:.14;background-position:65% center}.petals{font-size:50px;left:15%;bottom:17%}.asset-note{bottom:42px;right:7%;font-size:8px}.scroll-hint{font-size:7px;bottom:20px}.section{padding:70px 7%}.story{display:block}.story h2{margin-bottom:35px}.story-text{border-left:1px solid var(--line);padding-left:24px}.large-copy{font-size:23px!important}.story-text>p:not(.large-copy){font-size:12px}.eyebrow{font-size:8px;letter-spacing:.23em;margin-bottom:20px}.road-section{padding:65px 4% 50px}.section-heading{padding:0 3% 24px;display:block}.section-heading h2{font-size:34px}.section-heading>p{text-align:left;max-width:100%;font-size:11px;margin:15px 0 0}.map-wrap{margin:0 -4.35%;border-left:0;border-right:0}.stamp{width:52px;font-size:44px;border-width:3px;right:-8%;top:-25%}.costume .stamp{top:-10%;right:-4%}.task-list{margin-top:25px}.task-list button{padding:15px 9px;gap:7px;font-size:11px;flex-wrap:wrap}.task-list em{width:100%;margin-left:18px;font-size:8px;line-height:1.2}.task-list span{font-size:8px}.map-note{font-size:9px;line-height:1.9;margin:20px 3% 0}.film-section{display:flex;flex-direction:column;align-items:stretch;gap:30px}.film-placeholder{aspect-ratio:16/10}.ways{grid-template-columns:1fr;margin-top:35px}.ways>a,.ways>a:first-child{padding:25px 15px 25px 0;border-right:0;border-bottom:1px solid var(--line)}.ways>a:last-child{border-bottom:0}.ways h3{font-size:26px;margin:18px 0 5px}.ways p{font-size:12px;margin:0}.way-number{font-size:8px}.arrow{right:10px;bottom:26px}.participate h2{margin-bottom:0}.festival-section{padding-top:40px}.festival-section h2{font-size:27px}.festival-info h3{font-size:24px}.festival-info p{font-size:11px}footer{gap:20px;align-items:center}footer>div{margin:12px 0 0;width:100%;gap:25px}footer>small{text-align:left;font-size:8px;margin-top:20px}dialog{padding:38px 25px 30px}dialog h2{font-size:28px}dialog .eyebrow{margin-top:10px}.subpage{padding:175px 7% 70px}.subpage h1{font-size:42px}.subpage .back-link{margin-bottom:35px}.intro{font-size:12px}.detail-grid{grid-template-columns:1fr;gap:25px;padding:45px 0}.detail-grid h2{font-size:22px}.form-preview{padding:25px 20px}.form-preview h2{font-size:24px}.legal-block h2{font-size:23px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js .reveal:not(.visible){opacity:1;transform:none}}
/* A welcoming illustrated festival town. All labels and progress remain editable HTML. */
.road-section{background:#fcf4e3;color:#34271f}.road-section .eyebrow{color:#ad3827}.road-section h2{font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-weight:800;letter-spacing:.03em}.road-section .note{color:#77624e!important}.map-wrap{border:0;box-shadow:none;border-radius:22px;overflow:hidden}.map-point{border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:0 0 3px;filter:drop-shadow(0 3px 3px #5e382533)}.map-point:hover,.map-point:focus-visible{background:#fff8dc33;box-shadow:inset 0 0 0 2px #b63e26;border-color:transparent;outline-color:#a32a1b}.map-label{background:#302b25;color:#fff8e8;padding:4px 15px;border:2px solid #fff7e5;border-radius:8px;font-size:clamp(12px,1.6vw,24px);font-weight:700;line-height:1.6;white-space:nowrap;box-shadow:0 3px 0 #44271b22}.map-status{font-size:clamp(8px,.85vw,13px);background:#fff8e8;color:#7c543b;border-radius:0 0 7px 7px;padding:1px 10px;line-height:1.6;font-weight:700}.truck .map-status,.recruit .map-status{background:#cc402b;color:#fff}.festival .map-label{background:#bd3826}.truck{left:4%;top:15%;width:26%;height:28%}.music{left:38%;top:10%;width:24%;height:25%}.dance{left:37%;top:36%;width:29%;height:25%}.costume{left:76%;top:44%;width:22%;height:24%}.recruit{left:2%;top:58%;width:30%;height:25%}.practice{left:42%;top:71%;width:38%;height:23%}.festival{left:74%;top:6%;width:23%;height:32%}.stamp{color:#c73525;border-color:#c73525;background:#fff1d838;right:-4%;top:9%;width:clamp(48px,8.6vw,130px);font-size:clamp(42px,7.4vw,111px);text-shadow:none;box-shadow:none}.costume .stamp{right:0;top:0}.task-list{border-color:#c4ae8855;background:#fff9ed80;border-radius:12px;overflow:hidden}.task-list button{border-color:#c4ae8855;color:#3c3025}.task-list button:hover{background:#f0dfbf66}.task-list span{color:#ae3828}.task-list em{color:#795f4a}.task-list .done{color:#b03224}.map-note{color:#796148}
@media(max-width:560px){.map-wrap{border-radius:0;overflow:visible}.map-point{border-radius:8px;padding-bottom:0}.map-label{font-size:10px;padding:2px 6px;border-width:1px;border-radius:5px;line-height:1.5}.map-status{font-size:7px;padding:1px 5px;border-radius:0 0 4px 4px;line-height:1.4}.stamp{width:43px;font-size:36px;border-width:3px;top:-6%;right:-4%}.costume .stamp{top:-11%;right:0}.road-section h2{font-size:31px}.map-point:focus-visible{outline-offset:0}.task-list button{padding:15px 9px}.road-section .map-note{font-size:9px}}
.map-viewport{width:100%;max-width:100%;min-width:0}.map-scroll-hint{display:none}.form-jump{margin-top:30px}.form-jump .note{margin:10px 0 0}.review-fields{border:1px solid var(--line);margin:25px 0;padding:24px;min-width:0}.review-fields legend{font-size:11px;padding:0 10px;color:var(--gold)}.review-fields label{display:block;font-size:12px;margin-bottom:20px}.review-fields input,.review-fields textarea{display:block;width:100%;box-sizing:border-box;margin-top:8px;border:1px solid #766249;background:#100d0b;color:var(--muted);padding:13px;font:12px/1.7 inherit;border-radius:0;opacity:1;resize:none}.review-fields input::placeholder,.review-fields textarea::placeholder{color:#a89981;opacity:1}.review-fields button{padding:13px 20px;border:1px solid #80694c;background:#3a2b1b;color:#b9a88e;font-size:12px;cursor:not-allowed}.form-preview:target{outline:2px solid var(--gold);outline-offset:5px}
@media(max-width:700px){.map-viewport{overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;border-radius:12px;border:1px solid #c4ae88;scrollbar-color:#b8412c #ecdcb9;scrollbar-width:auto}.map-viewport .map-wrap{width:900px;min-width:900px;max-width:none;margin:0;border-radius:0;overflow:hidden}.map-viewport .map-label{font-size:16px;padding:4px 12px;border-width:2px;line-height:1.5;border-radius:7px}.map-viewport .map-status{font-size:11px;padding:2px 9px;line-height:1.4}.map-viewport .stamp{width:80px;font-size:67px;border-width:4px;top:5%;right:-4%}.map-viewport .costume .stamp{top:0;right:0}.map-scroll-hint{display:block;font-size:11px;line-height:1.9;color:#71503b;margin:0 3% 16px}.map-viewport:focus-visible{outline:3px solid #b63e26;outline-offset:3px}.review-fields{padding:18px 14px}.form-jump .button{max-width:100%;gap:16px}.road-section{min-width:0}}
/* Authentic frame from the supplied video: no generated portrait or retouching. */
.hero-person{position:absolute;z-index:2;top:100px;bottom:0;right:1%;width:53%;margin:0;overflow:hidden;mask-image:linear-gradient(90deg,transparent 0%,#000 20%,#000 94%,transparent 100%)}.hero-person img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 29%}.hero-person:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#100d0b 0%,transparent 22%),linear-gradient(90deg,#100d0b99 0%,transparent 40%);pointer-events:none}.hero-copy{width:64%}.hero:after{opacity:.09}.hero .scroll-hint{z-index:4}
@media(max-width:850px){.hero-person{width:61%;right:-4%;top:125px;mask-image:linear-gradient(90deg,transparent 0%,#000 22%,#000 100%)}.hero-person img{object-position:54% 25%}.hero-copy{width:75%}}
@media(max-width:560px){.hero-person{top:138px;width:84%;right:-19%;bottom:20px;mask-image:linear-gradient(90deg,transparent 0%,#000 27%,#000 100%)}.hero-person img{object-position:48% 15%}.hero-person:after{background:linear-gradient(0deg,#100d0b 0%,transparent 28%),linear-gradient(90deg,#100d0bcc 0%,#100d0b33 42%,transparent 65%)}.hero-copy{width:96%;padding-top:173px}.hero h1{font-size:48px;line-height:1.32}.hero-lead{font-size:12px;text-shadow:0 2px 12px #000}.hero-desc{max-width:210px;line-height:1.9;text-shadow:0 1px 8px #000}.hero-copy .eyebrow{font-size:7px;letter-spacing:.13em}.hero-copy .button{margin-top:10px}.hero-person+ .scroll-hint{z-index:4}}
/* Third map direction: sharp black/red/gold, with names on the illustrated signs. */
.road-section{background:#111616;color:#fbf1d9}.road-section .eyebrow{color:#e9bd68}.road-section .note{color:#c4baa6!important}.map-wrap{border-radius:12px}.map-label{display:none!important}.map-point{padding:0;filter:none;justify-content:flex-end}.map-point:hover,.map-point:focus-visible{background:#fff2bd09;box-shadow:inset 0 0 0 2px #dcb160;outline-color:#f9d88a}.map-status{background:#191c1a;color:#e9c47e;border:1px solid #a97f45;border-radius:5px;padding:2px 10px;font-size:clamp(9px,.85vw,13px);line-height:1.6;box-shadow:0 2px 8px #0008}.truck .map-status,.recruit .map-status{background:#b62d22;color:#fff7e7;border-color:#edb987}.truck{left:2%;top:5%;width:29%;height:35%}.music{left:35%;top:3%;width:26%;height:30%}.dance{left:34%;top:32%;width:33%;height:31%}.costume{left:73%;top:42%;width:26%;height:34%}.recruit{left:1%;top:46%;width:31%;height:41%}.practice{left:39%;top:65%;width:39%;height:31%}.festival{left:71%;top:1%;width:28%;height:34%}.stamp{color:#e34430;border-color:#e34430;background:#170c0838;right:0;top:13%;width:clamp(48px,8.6vw,130px);font-size:clamp(42px,7.4vw,111px);text-shadow:0 1px 2px #140705;box-shadow:0 2px 10px #0005}.costume .stamp{top:9%;right:0}.task-list{background:#181c1c;border-color:#89704455}.task-list button{color:#f8eed7;border-color:#89704455}.task-list button:hover{background:#ccb47314}.task-list span{color:#e8b46e}.task-list em{color:#bcae97}.task-list .done{color:#ed7a63}.map-note,.map-scroll-hint{color:#c1b29b}
@media(max-width:700px){.map-viewport{border-color:#887049;scrollbar-color:#b83e2b #242824}.map-viewport .map-label{display:none!important}.map-viewport .map-status{font-size:11px;border-radius:5px;padding:2px 9px}.map-viewport .stamp{width:80px;font-size:67px;border-width:4px;top:13%;right:0}.map-viewport .costume .stamp{top:9%;right:0}.map-viewport:focus-visible{outline-color:#e4bd70}}
/* A bold vermilion seal, isolated from detailed illustration for instant readability. */
.stamp{width:clamp(76px,10.2vw,156px);font-size:clamp(66px,8.8vw,135px);font-weight:900;color:#bb271c;border:7px double #bb271c;background:#fff4dcf5;text-shadow:none;box-shadow:0 0 0 4px #fff4dc,0 7px 20px #000b;right:-1%;top:7%;transform:rotate(-17deg);border-radius:7px;line-height:1}.costume .stamp{top:3%;right:0;transform:rotate(15deg)}.tiktok-account{transition:border-color .25s,filter .25s}.tiktok-account:hover{border-color:var(--gold);filter:brightness(1.12)}
@media(max-width:700px){.map-viewport .stamp{width:96px;font-size:82px;border-width:5px;top:7%;right:-1%;box-shadow:0 0 0 3px #fff4dc,0 5px 13px #000a}.map-viewport .costume .stamp{top:3%;right:0}}
.story{align-items:center}.story-intro>p:not(.eyebrow):not(.large-copy){font-size:13px;line-height:2;color:var(--muted)}.story-intro .large-copy{font-size:24px;margin:35px 0 22px}.story-video{width:min(100%,340px);justify-self:center}.story-video video{display:block;width:100%;height:auto;aspect-ratio:9/16;background:#000;border:1px solid #806840;box-shadow:16px 16px 0 #38241933}.video-external{display:flex;justify-content:space-between;gap:15px;padding:18px 2px 5px;font-size:11px;color:var(--gold)}.video-external:hover{text-decoration:underline}
@media(max-width:560px){.story-video{margin:35px auto 0;width:min(100%,320px)}.story-intro .large-copy{font-size:22px!important}.story-intro>p:not(.eyebrow):not(.large-copy){font-size:12px}.story h2{margin-bottom:25px}}

/* V7: keep the V5 vermilion seal; outline only the red glyph in white. */
.stamp{-webkit-text-stroke:3px #fff;paint-order:stroke fill}
@media(max-width:700px){.map-viewport .stamp{-webkit-text-stroke:2.5px #fff;paint-order:stroke fill}}
/* Confirmed launch state: every milestone is not started. */
.map-point .map-status,.truck .map-status,.recruit .map-status{background:#191c1a;color:#e9c47e;border-color:#a97f45}.task-list .not-started{color:#bcae97}.episode-section[hidden]{display:none}.episode-list{display:grid;gap:18px}
.episode-section{border-bottom:1px solid var(--line);background:linear-gradient(135deg,#1d1410,#100d0b)}.episode-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:35px}.episode-heading h2{margin-bottom:12px}.episode-heading>div>p:last-child{font-size:14px;color:var(--muted);margin-bottom:0}.episode-schedule{font-size:12px;text-align:right;color:var(--gold);line-height:2;white-space:nowrap;margin:0}.episode-schedule span{font-size:11px;color:var(--muted)}.episode-list{gap:0;border-top:1px solid var(--line)}.episode-row{display:flex;align-items:center;gap:25px;min-height:96px;border-bottom:1px solid var(--line);padding:22px 12px;transition:background .2s}.episode-row:hover{background:#dbb4690b}.episode-number{font-size:13px;font-weight:700;color:var(--gold);white-space:nowrap;min-width:50px}.episode-row h3{font-family:inherit;font-size:16px;font-weight:500;line-height:1.8;margin:0}.episode-latest{margin-left:auto;white-space:nowrap;border:1px solid #b8452f;background:#b8452f22;color:#f3ac88;padding:3px 8px;font-size:10px}.episode-arrow{margin-left:auto;color:var(--gold);font-size:23px}.episode-latest+.episode-arrow{margin-left:8px}
@media(max-width:560px){.episode-heading{display:block;margin-bottom:28px}.episode-schedule{text-align:left;margin-top:22px;font-size:11px}.episode-row{position:relative;gap:13px;align-items:flex-start;min-height:90px;padding:21px 5px}.episode-number{font-size:11px;min-width:37px;padding-top:3px}.episode-row h3{font-size:13px;padding-right:24px}.episode-arrow{position:absolute;right:4px;top:20px;font-size:19px}.episode-latest{position:absolute;bottom:6px;right:5px;font-size:8px;padding:1px 5px}.episode-row:has(.episode-latest){padding-bottom:32px}}
.all-episodes-link{margin-top:32px}.all-episodes-link .note{margin-top:12px}.breadcrumbs{display:flex;width:auto;justify-content:flex-start;align-items:center;flex-wrap:wrap;gap:12px;font-size:11px;color:var(--muted);margin:0 0 40px;padding:0}.breadcrumbs a{padding:0;color:var(--gold)}.breadcrumbs span[aria-hidden]{opacity:.5}.breadcrumbs span[aria-current]{color:var(--muted)}.form-next{padding:38px;border:1px solid var(--line);background:#24180f55;margin-bottom:55px}.form-next h2{font-size:28px}.form-next p{font-size:13px}.form-next .button{margin:8px 0 12px}.form-page h1{font-size:clamp(38px,5vw,64px)}.form-page .form-preview{margin-top:42px}.archive-heading{margin-top:55px}.archive-heading h2{font-size:28px;margin:0}.archive-back{margin-top:40px}.episode-archive .episode-list{margin-top:20px}
@media(max-width:560px){.breadcrumbs{font-size:10px;gap:9px;margin-bottom:30px;line-height:1.8}.form-next{padding:25px 20px}.form-next h2{font-size:24px}.form-next p{font-size:12px}.form-next .button{max-width:100%;gap:22px}.archive-heading{margin-top:38px}.episode-archive h1{font-size:40px}.all-episodes-link{margin-top:28px}}
/* Festival motion: red/gold light, drifting petals and embers; all decor is noninteractive. */
.motion-zone{position:relative;isolation:isolate}.motion-layer{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none;user-select:none;contain:strict}.hero .motion-layer{z-index:1}.motion-rail{position:absolute;top:2px;left:0;width:27%;height:2px;background:linear-gradient(90deg,transparent,#c22e20 22%,#ffd592 72%,transparent);opacity:.8;animation:naruko-light-run 9s linear infinite;animation-play-state:paused}.motion-particle{display:block;position:absolute;left:var(--x);top:var(--y);animation:naruko-rise var(--duration) ease-in-out infinite;animation-delay:var(--delay);animation-play-state:paused;opacity:.7}.motion-ember{width:4px;height:12px;border-radius:60%;background:linear-gradient(#ffe7ad,#ed7532 55%,transparent);box-shadow:0 0 8px #e6823855}.motion-petal{width:13px;height:9px;border-radius:80% 10% 75% 25%;background:linear-gradient(130deg,#f4c0a0,#c65840);transform:rotate(24deg);animation-name:naruko-petal;opacity:.6}.motion-zone[data-motion-active="true"] > .motion-layer > *{animation-play-state:running}.hero .motion-rail{top:auto;bottom:30px;height:3px;width:35%;animation-duration:7s}.hero .motion-ember{width:5px;height:17px}.hero .motion-petal{width:17px;height:11px}.hero-copy{animation:naruko-hero-enter 1.2s cubic-bezier(.2,.65,.25,1) both}.hero-person{animation:naruko-portrait-enter 1.6s cubic-bezier(.2,.65,.25,1) both}.hero-glow{animation:naruko-heat 8s ease-in-out infinite;animation-play-state:paused}.hero[data-motion-active="true"] .hero-glow{animation-play-state:running}.hero-copy .eyebrow{position:relative;padding-left:28px}.hero-copy .eyebrow:before{content:"";position:absolute;left:0;top:45%;width:16px;height:2px;background:var(--gold);transform-origin:left;animation:naruko-underline 4.5s ease-in-out infinite;animation-play-state:paused}.hero[data-motion-active="true"] .hero-copy .eyebrow:before{animation-play-state:running}.story-video{position:relative}.story-video:before{content:"";position:absolute;left:-12px;top:0;bottom:45px;width:2px;background:linear-gradient(180deg,transparent,#d8b56d66,transparent);pointer-events:none}.story-video:after{content:"";position:absolute;left:-13px;top:0;width:4px;height:55px;background:linear-gradient(transparent,#f3ce8d,transparent);pointer-events:none;animation:naruko-video-light 7s ease-in-out infinite;animation-play-state:paused}.story[data-motion-active="true"] .story-video:after{animation-play-state:running}.film-mark{animation:naruko-halo 5s ease-in-out infinite;animation-play-state:paused}.film-section[data-motion-active="true"] .film-mark{animation-play-state:running}.episode-latest{position:relative;overflow:hidden}.episode-latest:after{content:"";position:absolute;inset:-20% -40%;background:linear-gradient(110deg,transparent 30%,#ffe5b555 48%,transparent 66%);transform:translateX(-80%);animation:naruko-tag-light 7s ease-in-out infinite;animation-play-state:paused;pointer-events:none}.motion-zone[data-motion-active="true"] .episode-latest:after{animation-play-state:running}.ways .arrow{transition:transform .3s}.ways a:hover .arrow{transform:translate(4px,-4px)}.motion-ready .motion-step{transition:opacity .85s ease,transform .85s cubic-bezier(.18,.65,.25,1);transition-delay:var(--step-delay,0ms)}.motion-ready .motion-zone:not(.motion-entered) .motion-step{opacity:0;transform:translateY(32px)}.motion-ready .motion-entered .motion-step{opacity:1;transform:translateY(0)}.js .reveal{transition:opacity .9s ease,transform 1s cubic-bezier(.18,.65,.25,1)}.js .reveal:not(.visible){transform:translateY(42px) scale(.99)}
@keyframes naruko-light-run{from{transform:translateX(-110%)}to{transform:translateX(480%)}}
@keyframes naruko-rise{0%,100%{transform:translate3d(0,22px,0) rotate(-8deg);opacity:.15}45%{opacity:.8}80%{transform:translate3d(var(--drift),-65px,0) rotate(15deg);opacity:.45}}
@keyframes naruko-petal{0%,100%{transform:translate3d(0,-22px,0) rotate(24deg);opacity:.25}50%{transform:translate3d(var(--drift),28px,0) rotate(115deg);opacity:.7}}
@keyframes naruko-heat{0%,100%{transform:translate3d(0,0,0) scale(1);opacity:.5}50%{transform:translate3d(-35px,-20px,0) scale(1.2);opacity:.9}}
@keyframes naruko-hero-enter{from{opacity:0;transform:translateY(35px)}to{opacity:1;transform:translateY(0)}}
@keyframes naruko-portrait-enter{from{opacity:0;transform:translateX(35px)}to{opacity:1;transform:translateX(0)}}
@keyframes naruko-underline{0%,100%{transform:scaleX(.55);opacity:.6}50%{transform:scaleX(1.15);opacity:1}}
@keyframes naruko-video-light{0%,100%{transform:translateY(10px);opacity:.15}50%{transform:translateY(360px);opacity:.85}}
@keyframes naruko-halo{0%,100%{transform:scale(1);box-shadow:0 0 0 0 #d8b56d08}50%{transform:scale(1.06);box-shadow:0 0 0 12px #d8b56d10}}
@keyframes naruko-tag-light{0%,30%{transform:translateX(-90%)}70%,100%{transform:translateX(90%)}}
@media(max-width:700px){.motion-ember{width:3px;height:9px}.motion-petal{width:10px;height:7px}.hero .motion-ember{width:4px;height:13px}.hero .motion-petal{width:12px;height:8px}.motion-rail{height:2px;width:33%;animation-duration:10s}.motion-ready .motion-zone:not(.motion-entered) .motion-step{transform:translateY(22px)}.js .reveal:not(.visible){transform:translateY(26px)}.story-video:after{height:38px;animation-duration:8s}.hero-copy .eyebrow{padding-left:23px}.hero-copy .eyebrow:before{width:13px}}
@media(prefers-reduced-motion:reduce){.motion-layer{display:none}.motion-ready .motion-step,.motion-ready .motion-zone:not(.motion-entered) .motion-step,.js .reveal:not(.visible){opacity:1!important;transform:none!important;transition:none!important}.hero-copy,.hero-person,.hero-glow,.hero-copy .eyebrow:before,.story-video:after,.film-mark,.episode-latest:after{animation:none!important}.story-video:after{display:none}}
/* Completion color is a data-controlled vector light overlay, never baked into the map. */
.map-wrap{isolation:isolate}.sign-state-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;mix-blend-mode:screen;z-index:1}.map-controls{z-index:2}.map-point[data-progress="done"] .map-status{background:#9e251c;border-color:#e7a563;color:#fff2d8}.map-point[data-progress="in_progress"] .map-status{border-color:#ecb96c}.festival .map-status{background:#2a2113;border-color:#d8b56d;color:#fbe3a8}
/* More abundant petals and embers: varied size, drift and speed, with readable central space. */
.motion-ember{width:calc(4px * var(--size,1));height:calc(13px * var(--size,1))}.motion-petal{width:calc(14px * var(--size,1));height:calc(10px * var(--size,1))}.hero .motion-ember{width:calc(5px * var(--size,1));height:calc(18px * var(--size,1))}.hero .motion-petal{width:calc(18px * var(--size,1));height:calc(12px * var(--size,1))}
@keyframes naruko-rise{0%,100%{transform:translate3d(0,28px,0) rotate(-8deg);opacity:.24}45%{opacity:.9}80%{transform:translate3d(var(--drift),-85px,0) rotate(20deg);opacity:.65}}
@keyframes naruko-petal{0%,100%{transform:translate3d(0,-30px,0) rotate(24deg);opacity:.32}50%{transform:translate3d(var(--drift),45px,0) rotate(135deg);opacity:.86}}
@media(max-width:700px){.motion-ember{width:calc(3px * var(--size,1));height:calc(11px * var(--size,1))}.motion-petal{width:calc(12px * var(--size,1));height:calc(9px * var(--size,1))}.hero .motion-ember{width:calc(4px * var(--size,1));height:calc(15px * var(--size,1))}.hero .motion-petal{width:calc(15px * var(--size,1));height:calc(11px * var(--size,1))}}


/* Single mobile particle visibility policy; no competing older cutoffs. */
@media(max-width:700px){
 .motion-layer > .motion-particle:nth-child(n+18){display:none}
 .hero .motion-layer > .motion-particle:nth-child(n+18){display:block}
 .hero .motion-layer > .motion-particle:nth-child(n+24){display:none}
}
