:root{--night:#101c27;--navy:#142838;--blue:#1d4b66;--aqua:#79e3d4;--orange:#ff713a;--paper:#e9f0ec;--line:#5c7780;--mono:'SFMono-Regular',Consolas,'Courier New',monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--night);color:var(--paper);font-family:'Hiragino Kaku Gothic ProN','Noto Sans JP',Arial,sans-serif;line-height:1.7}a{color:inherit}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--orange);outline-offset:3px}.skip{position:absolute;top:-60px;left:10px;background:white;color:#000;padding:8px;z-index:200}.skip:focus{top:8px}.notice{display:flex;justify-content:space-between;gap:12px;background:var(--orange);color:#101c27;padding:5px 22px;font:800 .63rem var(--mono);letter-spacing:.07em}.shell{display:grid;grid-template-columns:115px minmax(0,1fr)}.rail{background:#0b1721;border-right:1px solid var(--line);min-height:100vh;position:sticky;top:0;height:100vh;display:flex;align-items:center;flex-direction:column;padding:25px 12px}.rail-logo{text-decoration:none;font:900 1.1rem var(--mono);letter-spacing:-.08em;color:#fff}.rail-logo span{color:var(--orange)}.rail-logo small{display:block;font-size:.54rem;letter-spacing:0}.rail-line{position:relative;display:flex;align-items:center;flex-direction:column;justify-content:space-around;height:36vh;margin:38px 0 18px;width:100%}.rail-line i{position:absolute;top:0;bottom:0;left:50%;border-left:2px solid var(--orange)}.rail-line b{position:relative;z-index:1;display:grid;place-items:center;width:28px;height:28px;border:2px solid var(--orange);border-radius:50%;background:var(--night);font:700 .59rem var(--mono)}.rail nav{display:flex;flex-direction:column;align-items:center;gap:25px}.rail nav a{writing-mode:vertical-rl;text-decoration:none;font-size:.65rem;letter-spacing:.1em}.rail nav a:hover,.rail-back:hover{color:var(--orange)}.rail-back{margin-top:auto;font:.62rem var(--mono);text-decoration:none;white-space:nowrap}.content{min-width:0}.mobile-header{display:none}.hero{display:grid;grid-template-columns:51% 49%;min-height:690px}.hero-board{display:flex;flex-direction:column;justify-content:center;padding:clamp(40px,6vw,100px);background:linear-gradient(145deg,#183449,#0e1d2a)}.eyebrow,.board-line,.departures,.machine-head,.machine-foot,.section-heading>span,.route>li>span,.guide-head>span,.result-top,.result dt,.result-foot,.space-head>span,.photo-grid figcaption,.questions .eyebrow{font:700 .67rem var(--mono);letter-spacing:.08em}.eyebrow{color:var(--aqua)}.board-line{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:30px;padding:12px 0;color:#bad0d2}.blink{color:var(--orange);animation:blink 2.5s steps(1) infinite}.hero h1{font-size:clamp(3.6rem,6vw,7.5rem);line-height:1.12;letter-spacing:-.06em;margin:35px 0;color:#fff;font-weight:900}.hero h1 em{font-style:normal;color:var(--orange)}.hero-board>p{max-width:440px;font-size:.87rem;color:#d4e1e0}.hero-board>a{display:flex;justify-content:space-between;width:min(100%,330px);padding:16px 20px;background:var(--aqua);color:#0c2531;margin:25px 0 40px;text-decoration:none;font-weight:800}.departures{display:flex;gap:20px;flex-wrap:wrap;padding-top:13px;border-top:1px solid var(--line);color:#9dbbc1}.hero-machine{display:flex;flex-direction:column;justify-content:space-between;padding:clamp(20px,4vw,50px);background:repeating-linear-gradient(0deg,#153347,#153347 39px,#1a3a4e 40px);min-width:0}.machine-head,.machine-foot{display:flex;justify-content:space-between;gap:8px;color:var(--aqua)}.machine-body{display:grid;place-items:center;align-self:center;width:min(100%,560px);aspect-ratio:1;background:#183950;border:18px solid #375c6a;border-radius:50%;box-shadow:0 0 0 5px #0f2635,0 0 0 14px #6b8890,inset 0 0 50px #07131c}.machine-rim{display:grid;place-items:center;width:88%;aspect-ratio:1;border:4px dashed #83abae;border-radius:50%;animation:spin 19s linear infinite}.machine-drum{display:grid;place-items:center;position:relative;width:83%;aspect-ratio:1;overflow:hidden;border:10px solid #9abcc0;border-radius:50%;background:radial-gradient(circle at 30% 30%,#60b4bb,#176481 60%,#103a52);box-shadow:inset 0 0 55px #061f2d;animation:spin-reverse 13s linear infinite}.machine-drum:before{content:'';position:absolute;inset:16%;border:2px solid rgba(255,255,255,.4);border-radius:50%}.machine-bubbles i{position:absolute;width:15%;aspect-ratio:1;border:3px solid #b4ece4;border-radius:50%}.machine-bubbles i:nth-child(1){top:18%;left:35%}.machine-bubbles i:nth-child(2){top:37%;left:15%;width:10%}.machine-bubbles i:nth-child(3){top:48%;right:17%;width:8%}.machine-bubbles i:nth-child(4){bottom:18%;left:37%;width:12%}.machine-bubbles i:nth-child(5){bottom:25%;right:32%;width:6%}.machine-drum>span{position:relative;z-index:1;background:#122a38bb;padding:6px 8px;color:#fff;font:700 .55rem var(--mono);white-space:nowrap}.how{padding:clamp(90px,10vw,150px) clamp(25px,6vw,100px);background:var(--paper);color:var(--night)}.section-heading{display:grid;grid-template-columns:170px 1fr 290px;gap:25px;align-items:end;margin-bottom:65px}.section-heading .eyebrow{align-self:start;color:var(--blue)}h2{font-size:clamp(2.4rem,5vw,5.5rem);line-height:1.2;letter-spacing:-.06em;margin:0}.section-heading>p{font-size:.78rem}.route{list-style:none;margin:0;padding:0;border-top:3px solid var(--night)}.route li{display:grid;grid-template-columns:100px 1fr 100px;gap:20px;align-items:center;padding:24px 0;border-bottom:1px solid #9daeb2}.route b{color:var(--orange);font:900 clamp(2rem,4vw,4rem) var(--mono)}.route h3{font-size:1.4rem;margin:0}.route p{font-size:.75rem;margin:4px 0}.route>li>span{text-align:right;color:var(--blue)}.guide{padding:clamp(90px,10vw,150px) clamp(25px,6vw,100px);background:#0a202e;color:#e9f4f1}.guide-head{display:grid;grid-template-columns:175px 1fr 270px;gap:25px;align-items:end;margin-bottom:60px}.guide-head .eyebrow{align-self:start}.guide-head h2{grid-row:span 2}.guide-head>p{font-size:.79rem;margin:0}.guide-head>p:last-child{border-left:3px solid var(--orange);padding-left:14px;color:#bed3d3}.guide-layout{display:grid;grid-template-columns:1fr 1fr;border:1px solid #567888}.controls{padding:clamp(25px,4vw,55px);background:#193d50}fieldset{margin:0 0 25px;padding:0 0 25px;border:0;border-bottom:1px solid #638394}legend{font-size:.83rem;font-weight:800;margin-bottom:16px}legend b{display:inline-block;color:var(--orange);font:900 1.3rem var(--mono);margin-right:10px}.choices{display:flex;gap:7px;flex-wrap:wrap}.choices button{min-height:48px;padding:9px 14px;background:#0f2d3c;border:1px solid #77939b;color:#fff;font:inherit;font-size:.8rem;cursor:pointer}.choices button[aria-pressed=true]{background:var(--aqua);border-color:var(--aqua);color:#082333;font-weight:800}.reset{border:0;border-bottom:1px solid var(--orange);background:none;color:var(--orange);font:inherit;font-size:.75rem;padding:0 0 4px;cursor:pointer}.result{padding:clamp(25px,4vw,55px);background:#07151d}.result-top{display:flex;justify-content:space-between;gap:10px;padding-bottom:12px;border-bottom:1px solid #5a7882;color:var(--orange)}.result h3{font-size:clamp(1.8rem,3vw,3.5rem);line-height:1.3;margin:40px 0 20px}.result>p:not(.tip):not(.result-foot){font-size:.83rem}.result dl{margin:30px 0 20px;border-top:1px solid #5a7882}.result dl div{display:grid;grid-template-columns:1fr 1.5fr;gap:15px;padding:12px 0;border-bottom:1px solid #5a7882}.result dt{color:#aacbd0}.result dd{margin:0;text-align:right;color:var(--aqua);font-size:.82rem;font-weight:700}.tip{background:#183a49;padding:12px 15px;font-size:.78rem}.result-foot{font-size:.64rem;color:#a9c3c7}.space{padding:clamp(90px,10vw,150px) clamp(25px,6vw,100px);background:#d5e5e2;color:var(--night)}.space-head{display:grid;grid-template-columns:170px 1fr 240px;gap:25px;align-items:end;margin-bottom:60px}.space-head>span{color:var(--blue);align-self:start}.space-head p{font-size:.78rem}.photo-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:15px}.photo-grid figure{margin:0;min-width:0}.photo-grid img{display:block;width:100%;height:430px;object-fit:cover;filter:saturate(.8)}.photo-grid figcaption{padding:12px 0;color:var(--blue)}.questions{display:grid;grid-template-columns:1fr 1fr;gap:50px;padding:clamp(90px,10vw,150px) clamp(25px,6vw,100px);background:#0f2633}.questions h2{margin-top:22px}.questions details{border-top:1px solid #60808a;padding:15px 0}.questions details:last-of-type{border-bottom:1px solid #60808a}.questions summary{cursor:pointer;font-size:.83rem}.questions details p{font-size:.78rem;color:#bad0d2}.questions a{display:inline-block;margin-top:35px;border-bottom:1px solid var(--orange);text-decoration:none;font-size:.8rem}footer{display:flex;justify-content:space-between;gap:15px;padding:25px clamp(25px,6vw,100px);font:700 .62rem var(--mono);background:#07131b;color:#9fb7ba}@keyframes spin{to{transform:rotate(360deg)}}@keyframes spin-reverse{to{transform:rotate(-360deg)}}@keyframes blink{50%{opacity:.3}}
#machine-visual[data-kind=towels] .machine-drum{background:radial-gradient(circle at 30% 30%,#c1f0da,#329486 60%,#0c4852)}#machine-visual[data-kind=bedding] .machine-drum{background:radial-gradient(circle at 30% 30%,#e8d8a7,#997a65 60%,#52475b)}
@media(max-width:1100px){.shell{grid-template-columns:90px minmax(0,1fr)}.hero{grid-template-columns:1fr}.hero-board{min-height:560px}.hero-machine{min-height:580px}.machine-body{width:min(70%,500px)}.section-heading,.guide-head,.space-head{grid-template-columns:1fr 2fr}.section-heading>p,.guide-head>p,.space-head>p{grid-column:2}.guide-head h2{grid-row:auto}.guide-layout{grid-template-columns:1fr}.photo-grid img{height:340px}}
@media(max-width:700px){.notice span:last-child{display:none}.shell{display:block}.rail{display:none}.mobile-header{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;background:#07131b}.mobile-header a{text-decoration:none;font:900 1.1rem var(--mono)}.mobile-header small{font-size:.55rem}.hero-board{padding:75px 25px;min-height:0}.hero h1{font-size:clamp(3.5rem,15vw,5.5rem)}.board-line{font-size:.52rem}.departures{font-size:.53rem}.hero-machine{padding:25px;min-height:410px}.machine-body{width:min(80%,335px);border-width:12px}.machine-drum{border-width:7px}.machine-head,.machine-foot{font-size:.52rem}.section-heading,.guide-head,.space-head{display:block}.section-heading>p,.guide-head>p,.space-head>p{max-width:450px}.route li{grid-template-columns:60px 1fr}.route li>span{display:none}.route h3{font-size:1.1rem}.route b{font-size:1.8rem}.guide-layout{display:block}.controls,.result{padding:30px 22px}.result dl div{grid-template-columns:1fr;gap:2px}.result dd{text-align:left}.photo-grid{grid-template-columns:1fr}.photo-grid img{height:300px}.questions{grid-template-columns:1fr;gap:40px}.questions h2{margin:15px 0}footer{display:block}footer span{display:block;margin-bottom:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.blink,.machine-rim,.machine-drum{animation:none}}

/* Japanese reading rhythm: keep short sentence endings together. */
p{text-wrap:pretty;line-break:strict}h1,h2,h3{text-wrap:balance;line-break:strict}

/* Station board and a real-world-looking, fictional laundry scene. */
.hero-board{padding:clamp(32px,5vw,84px)}
.hero-tagline{margin:28px 0 0;color:var(--aqua);font-size:clamp(1.15rem,2vw,1.9rem);font-weight:800;letter-spacing:.08em}
.hero h1{font-size:clamp(3.2rem,5.3vw,6rem);letter-spacing:-.07em;margin:8px 0 26px;line-height:1.2}
.hero-machine{position:relative;display:block;min-height:690px;padding:0;overflow:hidden;background:#1a3948}
.machine-body{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;border:0;border-radius:0;box-shadow:none;background:none;display:block;overflow:hidden}
.machine-body img{display:block;width:100%;height:100%;object-fit:cover;object-position:56% center}
.machine-body:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,25,34,.68),transparent 38%,rgba(8,25,34,.25));pointer-events:none}
.machine-label{position:absolute;right:24px;bottom:64px;z-index:1;background:#0b2736d9;color:#fff;padding:7px 10px;font:700 .62rem var(--mono)}
.machine-head,.machine-foot{position:absolute;left:25px;right:25px;z-index:2;padding:9px 12px;background:#0b2736dc;color:#d3faf3}
.machine-head{top:25px}.machine-foot{bottom:25px}
@media(max-width:1100px){.hero-machine{min-height:430px}.hero-board{min-height:0}}
@media(max-width:700px){.hero-machine{order:-1;min-height:290px}.hero-board{padding:30px 25px 45px}.hero h1{font-size:clamp(2.8rem,12vw,4.5rem);margin:8px 0 20px}.hero-tagline{margin:20px 0 0}.machine-head,.machine-foot{left:12px;right:12px;font-size:.5rem}.machine-head{top:12px}.machine-foot{bottom:12px}.machine-label{right:12px;bottom:55px;font-size:.5rem}.departures{display:none}.hero-board>a{margin-bottom:0}}
