:root{--ink:#282c2b;--muted:#6c6d65;--paper:#fcf9f3;--cream:#f4eee3;--coral:#f54343;--burgundy:#8a1f2d;--line:#e2dcd1;--shadow:0 12px 45px #28332619;--header:88px;--footer:32px;--sans:"Avenir Next","Segoe UI",system-ui,sans-serif;--serif:Georgia,"Times New Roman",serif}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{font-family:var(--sans);color:var(--ink);background:#e9e4d7;font-size:15px;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.4}button,a{touch-action:manipulation}a{color:inherit}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--burgundy);outline-offset:5px}button{border:0}button svg{width:21px;height:21px;stroke:currentColor;stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round}button:active{transform:translateY(1px)}[hidden]{display:none!important}.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-link{position:fixed;left:12px;top:-70px;background:var(--paper);padding:15px;z-index:100}.skip-link:focus{top:12px}img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}h1,h2{font-family:var(--serif);font-weight:400;letter-spacing:-.045em;line-height:1.06}h1 em,h2 em{font-weight:400;color:var(--burgundy)}h3{font-size:22px;letter-spacing:-.035em;line-height:1.2}p{line-height:1.65}a,button{transition:background .2s,color .2s,box-shadow .2s}button:hover{color:var(--burgundy)}
.world{position:fixed;inset:var(--header) 0 var(--footer);overflow:hidden;background:#d5dcce}.world canvas,.panorama-fallback,.arrival-scene,.world-shade,.travel-wash{position:absolute;inset:0;width:100%;height:100%}.world canvas{cursor:grab;touch-action:none}.world canvas:active{cursor:grabbing}.panorama-fallback{object-fit:cover;object-position:center}.arrival-scene{background-size:cover;background-position:center;opacity:0;transition:opacity .65s,transform 1.2s;pointer-events:none;transform:scale(1.07)}.arrival-scene.visible{opacity:1;transform:scale(1)}.world-shade{pointer-events:none;background:linear-gradient(180deg,#1b251413 0%,transparent 40%,#202b2924 100%)}.travel-wash{pointer-events:none;background:#fcf9f3;opacity:0;transition:opacity .2s}.travel-wash.active{opacity:.8}
.site-header{height:var(--header);padding:0 36px;display:flex;align-items:center;justify-content:space-between;gap:20px;position:relative;z-index:20;background:var(--paper);border-bottom:1px solid #ddd8cd}.brand{display:flex;align-items:center;gap:10px;text-align:left;background:transparent;padding:0;flex-shrink:0}.brand img{border-radius:11px;width:38px;height:38px}.brand>span{font-size:14px;font-weight:650;letter-spacing:-.025em}.brand small{display:block;font-weight:400;font-size:11px;letter-spacing:.025em;color:var(--muted);margin-top:3px}nav{display:flex;gap:7px}nav :is(button,a[data-go]){padding:12px 15px;background:transparent;border-radius:100px;font-size:13px;font-weight:550;white-space:nowrap}nav :is(button,a[data-go]):hover,nav :is(button,a[data-go]).active{background:#f2e7db;color:var(--burgundy)}.nav-number{font-size:10px;color:#8f8d81;margin-right:6px;font-weight:400}.header-actions{display:flex;gap:9px}.utility{display:flex;align-items:center;gap:7px;border:1px solid #ddd9d0;background:transparent;border-radius:100px;padding:10px 13px;font-size:12px;white-space:nowrap}.utility:hover{background:#f2e7db}.utility[aria-pressed=true]{background:var(--ink);color:white}
.welcome{position:absolute;z-index:5;top:calc(var(--header) + 28px);left:38px;padding:26px 30px 24px;width:440px;border-radius:4px 38px 4px 4px;background:#fcf9f3ed;box-shadow:0 6px 30px #2630190c;transition:opacity .4s,transform .4s;pointer-events:auto}.eyebrow{font-size:9px;font-weight:650;letter-spacing:.16em;color:var(--burgundy);line-height:1.6;margin-bottom:17px}.welcome .eyebrow{font-size:8px;margin-bottom:16px;white-space:nowrap}.welcome .eyebrow span{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--coral);margin-right:5px}.welcome h1{font-size:41px;margin-bottom:15px}.welcome>p:not(.eyebrow){font-size:12px;line-height:1.65;color:#53574e;margin-bottom:18px}.welcome-start{display:flex;gap:28px;align-items:center;background:transparent;padding:0;font-size:12px;font-weight:650}.welcome-start span{width:29px;height:29px;display:grid;place-items:center;background:var(--coral);color:white;border-radius:50%;font-size:17px}.explored .welcome{opacity:0;pointer-events:none;transform:translateY(-12px)}
.hotspots{position:fixed;inset:var(--header) 0 var(--footer);pointer-events:none;z-index:4}.hotspot{position:absolute;pointer-events:auto;background:none;display:flex;flex-direction:column;align-items:center;gap:9px;transform:translate(-50%,-40%);padding:8px;will-change:left,top;transition:opacity .2s}.hotspot:active{transform:translate(-50%,-40%)}.pin{display:grid;place-items:center;width:41px;height:41px;border:1px solid #ffffffbb;background:#fcf9f3f2;border-radius:50%;box-shadow:0 5px 20px #1e2c1a44;color:var(--burgundy);position:relative}.pin:after{content:"";width:1px;height:11px;background:white;position:absolute;bottom:-11px}.hotspot-label{background:#fcf9f3f2;padding:9px 16px 10px;border:1px solid #fff9;box-shadow:0 5px 18px #15241720;border-radius:5px;white-space:nowrap;text-align:left;min-width:130px}.hotspot-label small{display:block;font-size:8px;letter-spacing:.15em;margin-bottom:3px;color:var(--muted)}.hotspot-label strong{font-size:13px;font-weight:650}.hotspot-label strong span{display:inline-block;margin-left:9px;color:var(--coral)}.hotspot:hover .pin,.hotspot:hover .hotspot-label{background:white;box-shadow:0 8px 30px #26311b40}.hotspot.selected .pin{background:var(--coral);color:white}
.explore-dock{position:fixed;z-index:8;bottom:calc(var(--footer) + 24px);left:36px;right:36px;padding:16px 18px 16px 22px;border:1px solid #fff9;background:#fcf9f3f2;border-radius:12px;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:space-between;gap:20px}.whereabouts{display:flex;align-items:center;gap:12px;min-width:215px}.location-dot{width:8px;height:8px;background:var(--coral);border-radius:50%;box-shadow:0 0 0 5px #f5434312}.whereabouts small{display:block;font-size:8px;letter-spacing:.15em;color:var(--muted);margin-bottom:4px}.whereabouts strong{font-weight:550;font-size:12px}.look-controls{display:flex;align-items:center;gap:20px;text-align:center}.look-controls>button{border:1px solid var(--line);border-radius:50%;width:40px;height:40px;display:grid;place-items:center;background:transparent}.look-controls>button:hover{background:#eee4d7}.look-controls>div span{display:block;font-size:12px;font-weight:550}.look-controls small{font-size:9px;color:var(--muted);display:block;margin-top:4px}.advance-button{display:flex;gap:20px;align-items:center;justify-content:center;background:var(--coral);color:#fff;border-radius:7px;padding:15px 20px;font-size:12px;font-weight:650;min-width:205px}.advance-button span{font-size:18px}.advance-button:hover{color:white;background:#d63439}.experience-footer{position:fixed;bottom:0;left:0;right:0;height:var(--footer);padding:0 37px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:9px;letter-spacing:.02em;color:#6d7166;background:var(--paper);z-index:20}.experience-footer span{display:flex;align-items:center;gap:6px}.experience-footer i{width:5px;height:5px;background:#828c73;border-radius:50%}.experience-footer button{font-size:9px;color:inherit;background:none;padding:7px 0}.experience-footer button[aria-pressed=true]{color:var(--burgundy);text-decoration:underline}
.journey-notice{position:fixed;top:calc(var(--header) + 22px);left:50%;transform:translateX(-50%);background:#fcf9f3ed;border-radius:100px;padding:12px 22px;z-index:15;font-size:12px;opacity:0;pointer-events:none;transition:opacity .25s;box-shadow:var(--shadow);white-space:nowrap}.traveling .journey-notice{opacity:1}.traveling .hotspots,.traveling .explore-dock{opacity:0;pointer-events:none}.traveling .hotspot{pointer-events:none}.traveling .welcome{opacity:0;pointer-events:none}.at-destination .hotspots,.at-destination .explore-dock{display:none}.at-destination .world-shade{background:linear-gradient(90deg,#17241c20,transparent 50%)}.location-caption{position:fixed;left:40px;bottom:calc(var(--footer) + 40px);z-index:5;color:#fff;max-width:38vw;text-shadow:0 1px 20px #15241788}.location-caption:before{content:"";position:absolute;z-index:-1;inset:-140px -70px -70px -60px;background:radial-gradient(ellipse at bottom left,#182a2aaf,transparent 72%);pointer-events:none}.back-link{display:inline-flex;align-items:center;gap:8px;margin-bottom:24px;background:var(--paper);color:var(--ink);padding:11px 17px;border-radius:100px;font-size:11px;box-shadow:var(--shadow);text-shadow:none}.location-caption .eyebrow{color:#fff9d9;margin-bottom:7px}.location-name{font-family:var(--serif);font-size:clamp(34px,4vw,60px);letter-spacing:-.04em;line-height:1;margin-bottom:13px}.location-description{font-size:13px;max-width:280px;line-height:1.6;margin:0}
.destination-panel{position:fixed;right:24px;top:calc(var(--header) + 20px);bottom:calc(var(--footer) + 20px);width:min(620px,53vw);z-index:10;background:var(--paper);border:1px solid #ffffffb3;border-radius:12px;box-shadow:0 25px 70px #26311b36;display:flex;flex-direction:column;outline:none;animation:panel-appear .45s ease both}.panel-top{display:flex;justify-content:space-between;align-items:center;padding:12px 21px 10px 32px;border-bottom:1px solid var(--line);flex-shrink:0}.panel-top>span{font-size:10px;color:var(--muted);letter-spacing:.04em}.close-button{width:32px;height:32px;display:grid;place-items:center;font-size:23px;font-weight:300;background:#eae5db;border-radius:50%;color:var(--ink);flex-shrink:0}.close-button:hover{background:#e7d4c5}.panel-scroll{padding:28px 32px 26px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c3b6a3 transparent;flex:1}.panel-scroll h2{font-size:44px;margin-bottom:20px;line-height:1.05}.panel-scroll>p{font-size:14px;color:#54584f;line-height:1.7;margin-bottom:22px}.panel-scroll>.eyebrow{color:var(--burgundy);font-size:9px;margin-bottom:14px}.panel-scroll p.lead{font-size:16px;line-height:1.65;color:#4e544b;margin-bottom:26px}.panel-scroll h3{margin:0 0 12px}.panel-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 26px;border-top:1px solid var(--line);flex-shrink:0;background:#f7f2e9;border-radius:0 0 12px 12px}.text-button,.text-link{font-size:12px;background:none;padding:6px 0;font-weight:600;color:var(--burgundy);text-decoration:none;text-underline-offset:4px}.text-button:hover,.text-link:hover{text-decoration:underline}.next-stop{background:var(--ink);color:#fff;padding:12px 18px;border-radius:6px;font-size:12px}.next-stop:hover{background:var(--burgundy);color:#fff}.pillar{display:flex;gap:19px;border-top:1px solid var(--line);padding:24px 0 8px}.chapter-number{font-family:var(--serif);font-size:31px;color:#b9a68d;line-height:1}.pillar .eyebrow{font-size:8px;margin:0 0 8px}.pillar h3{font-size:22px}.pillar p:last-child{font-size:13px;color:#5a5f54;margin-bottom:19px}.try-it{border-radius:10px;background:#eee6d9;padding:25px;margin:12px 0 31px}.try-it .eyebrow{margin-bottom:9px;font-size:8px}.try-it h3{font-size:25px}.try-it p{font-size:13px}.reflection-options{display:grid;gap:7px;margin:20px 0 16px}.reflection-options button{background:#fcf9f3;border:1px solid #dbd1c4;text-align:left;border-radius:5px;padding:12px 10px;font-size:12px;display:flex;align-items:center;gap:9px}.reflection-options button[aria-pressed=true]{border-color:var(--burgundy);box-shadow:0 0 0 1px var(--burgundy)}.reflection-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.green{background:#768568}.amber{background:#ba8d3e}.coral{background:#de6660}.reflection-result{font-size:13px;line-height:1.65;background:#fff9;padding:14px;border-left:2px solid var(--burgundy);margin-bottom:15px}.fine-print,.panel-scroll .fine-print{font-size:11px;color:#72756b;line-height:1.6}.try-it .fine-print{font-size:10px;margin:12px 0 0}.resource-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:24px}.resource-grid>a{position:relative;min-height:137px;border:1px solid var(--line);border-radius:8px;background:#f4eee4;padding:19px;text-decoration:none;overflow:hidden}.resource-grid>a:hover{border-color:#bba999}.resource-grid strong{display:block;font-size:13px;position:relative}.resource-grid small{display:block;font-size:10px;color:var(--muted);margin-top:5px;position:relative}.kana,.resource-symbol{display:block;font-size:26px;line-height:1;margin-bottom:20px;color:var(--burgundy)}.resource-grid>a.game-resource{display:flex;flex-direction:column;justify-content:flex-end;color:#fff}.game-resource img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.43)}.resource-grid .game-resource small{color:#fff}.panel-scroll .closing-note{font-family:var(--serif);font-style:italic;font-size:23px;line-height:1.4;border-top:1px solid var(--line);padding-top:20px;margin-bottom:0;color:var(--burgundy)}
.teacher-intro{display:grid;grid-template-columns:1fr 160px;gap:18px;align-items:center;margin:0 0 23px}.teacher-intro h2{font-size:49px;margin-bottom:12px}.teacher-intro img{border-radius:90px 90px 8px 8px;aspect-ratio:4/5;height:200px;object-fit:cover;background:#eadfd3}.teacher-intro p{font-size:12px;line-height:1.5;margin-bottom:0}.teacher-intro .teacher-full-name{font-size:13px;font-weight:650;margin-bottom:7px}.facts{display:grid;grid-template-columns:1fr 1fr 1fr;border-block:1px solid var(--line);padding:19px 0;margin-bottom:25px;gap:10px}.facts strong{display:block;font-size:17px;font-weight:550;letter-spacing:-.04em}.facts span{display:block;font-size:10px;color:var(--muted);margin-top:6px}.photo-album{display:grid;grid-template-columns:1.15fr 1fr;gap:15px;margin-bottom:29px;align-items:start}.photo-album figure{margin:0}.photo-album figure:nth-child(2){padding-top:17px}.photo-album button{padding:5px;background:white;border:1px solid var(--line);width:100%;box-shadow:0 4px 14px #26311b0d}.photo-album img{height:160px;object-fit:cover;width:100%}.photo-album figure:nth-child(2) img{object-position:50% 55%}.photo-album figcaption{font-family:var(--serif);font-style:italic;font-size:13px;color:#777364;padding:8px 1px 0;line-height:1.4}.testimonials{margin-top:29px}.testimonials>.eyebrow{margin-bottom:8px}.testimonial{display:block;width:100%;background:#f3ede2;border:1px solid var(--line);text-align:left;border-radius:8px;padding:19px 20px;margin:13px 0}.testimonial strong{display:flex;justify-content:space-between;font-size:14px;font-weight:600}.testimonial p{font-size:13px;margin:9px 0}.testimonial small{font-size:10px;color:var(--burgundy)}.contact-link{display:flex;justify-content:space-between;font-size:13px;font-weight:550;text-decoration:none;border-top:1px solid var(--line);padding-top:22px;margin-top:24px;overflow-wrap:anywhere}
.program-card{border:1px solid #dfd5c8;border-radius:9px;padding:25px;margin-bottom:22px;background:#f4ede2}.program-header{display:grid;grid-template-columns:1fr 92px;gap:15px;margin-bottom:17px}.program-header img{height:134px;width:92px;object-fit:contain;transform:rotate(5deg);filter:drop-shadow(5px 9px 7px #27160830)}.program-card .eyebrow{font-size:8px;line-height:1.7;margin-bottom:13px}.program-card h3{font-family:var(--serif);font-weight:400;font-size:32px;line-height:1.08;margin-bottom:12px}.program-card p{font-size:13px;margin-bottom:15px}.format-pill{display:inline-block;border:1px solid #cbbfae;border-radius:100px;font-size:10px;padding:6px 10px}.program-card>p:not(.eyebrow){margin-top:15px}.checklist{list-style:none;padding:0;margin:20px 0}.checklist li{font-size:12px;line-height:1.6;position:relative;padding-left:19px;margin:9px 0}.checklist li:before{content:"✓";position:absolute;left:0;color:var(--burgundy)}details{border-top:1px solid #d9cebd;padding:13px 0}summary{font-size:12px;font-weight:550;cursor:pointer;line-height:1.6;padding-right:12px}details p{font-size:12px;margin:12px 0 0!important}details .lesson-list{padding-left:18px;margin:15px 0 2px}details .lesson-list li{font-size:12px;line-height:1.65;margin:9px 0}.program-actions{display:flex;flex-wrap:wrap;align-items:center;gap:15px;margin-top:21px}.primary-link{background:var(--coral);color:white;text-decoration:none;border-radius:5px;padding:13px 16px;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:space-between;gap:20px}.primary-link:hover{background:#d63236}.main-program{background:#fffdf8}.hours-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;border-block:1px solid var(--line);padding:16px 0;margin:20px 0}.hours-grid strong{display:block;font-size:24px;font-family:var(--serif);font-weight:400}.hours-grid span{display:block;font-size:10px;line-height:1.5;margin-top:5px;color:var(--muted)}.general-faq{padding:16px 0}.general-faq summary{font-size:13px}.already-student{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;border-block:1px solid var(--line);padding:19px 0;margin:14px 0 20px;font-size:12px}.already-student a{color:var(--burgundy);font-weight:600;text-underline-offset:4px}
dialog{padding:34px;border:1px solid #fff8;background:var(--paper);color:var(--ink);border-radius:14px;box-shadow:0 35px 100px #101a1960;max-height:90dvh;max-width:calc(100vw - 30px)}dialog::backdrop{background:#26372d77;backdrop-filter:blur(5px)}.dialog-close{position:absolute;top:17px;right:17px}.map-dialog{width:560px;text-align:center}.map-dialog>.eyebrow{font-size:8px;margin-top:15px}.map-dialog h2{font-size:39px;margin-bottom:12px}.map-dialog>p:not(.eyebrow){font-size:12px;color:var(--muted)}.neighborhood-map{position:relative;width:100%;aspect-ratio:480/285;background:#efe9db;border-radius:12px;margin:23px 0 20px}.neighborhood-map svg{position:absolute;inset:0;width:100%;height:100%}.map-road-edge{fill:none;stroke:#e0d5c1;stroke-width:43;stroke-linejoin:round;stroke-linecap:round}.map-road{fill:none;stroke:#fdf9ef;stroke-width:31;stroke-linejoin:round;stroke-linecap:round}.map-route{fill:none;stroke:#b6a78b;stroke-width:1.5;stroke-dasharray:3 5}.map-you{fill:var(--coral);stroke:#fff;stroke-width:3}.map-tree{fill:#adb8a1;stroke:#c6cfbc;stroke-width:5}.map-place{position:absolute;border-radius:7px;padding:11px 13px;background:#fcf9f3;box-shadow:0 5px 15px #373c2220;border:1px solid #dacdb6;width:120px;transform:translateX(-50%)}.map-place:active{transform:translateX(-50%) translateY(1px)}.map-place span{font-size:9px;display:block;color:var(--coral);margin-bottom:3px}.map-place strong{display:block;font-size:12px;font-weight:600}.map-place small{display:block;font-size:9px;color:var(--muted);margin-top:3px}.map-place.active{box-shadow:0 0 0 2px var(--coral)}.map-school{top:9%;left:50%}.map-bookshop{top:40%;left:15%}.map-cafe{top:40%;left:85%}.map-home{position:absolute;bottom:2%;left:50%;transform:translateX(-50%);font-size:9px;color:var(--burgundy);background:none;padding:8px;white-space:nowrap}.map-home:active{transform:translateX(-50%)}.map-dialog .map-current{font-weight:600;color:var(--burgundy);margin-bottom:6px}.map-dialog .fine-print{margin-bottom:0;font-size:10px}.image-dialog{padding:40px 20px 16px;width:auto;max-width:min(800px,94vw)}.image-dialog>img{max-height:72dvh;max-width:100%;width:auto;margin:0 auto;object-fit:contain}.image-dialog>p{font-size:12px;line-height:1.5;max-width:600px;margin:14px auto 0}.image-dialog .dialog-close{top:5px;right:5px;background:#fff9}.noscript{position:fixed;inset:0;background:var(--paper);z-index:100;padding:80px 30px;overflow:auto}.reduced-motion *{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.world.failed canvas{display:none}.world.failed .panorama-fallback{display:block}
.panel-scroll{overflow-anchor:none}
@keyframes panel-appear{from{opacity:0;translate:0 15px}to{opacity:1;translate:0 0}}
@media(min-width:1600px){.welcome{left:54px;top:calc(var(--header) + 40px);width:495px;padding:32px 36px}.welcome h1{font-size:47px}.destination-panel{right:36px;width:650px}.panel-scroll{padding:34px 40px}}
@media(max-width:1080px){:root{--header:78px}.site-header{padding:0 22px;gap:12px}.brand>span{font-size:12px}.brand small{font-size:10px}.brand img{width:33px;height:33px}.header-actions{gap:6px}.utility{padding:10px}.utility span{display:none}nav{gap:0}nav :is(button,a[data-go]){padding:11px 12px}.welcome{width:390px;left:24px;padding:23px 26px}.welcome h1{font-size:36px}.explore-dock{left:24px;right:24px;gap:10px}.whereabouts{min-width:180px}.look-controls{gap:10px}.look-controls small{display:none}.advance-button{min-width:190px;padding:14px 16px}.destination-panel{width:57vw;right:17px}.panel-scroll{padding:25px}.panel-top{padding-left:25px}.location-caption{left:25px;max-width:35vw}.location-name{font-size:42px}.teacher-intro{grid-template-columns:1fr 135px;gap:14px}.teacher-intro img{height:175px}.teacher-intro h2{font-size:44px}.program-card{padding:21px}}
@media(max-width:760px){:root{--header:115px;--footer:28px}.site-header{height:var(--header);padding:13px 18px 0;display:grid;grid-template-columns:1fr auto;gap:7px 8px;align-content:start}.brand img{width:34px;height:34px}.brand>span{font-size:12px}.brand small{font-size:9px}.header-actions{grid-column:2;grid-row:1}.utility{padding:8px}.utility svg{width:18px;height:18px}nav{grid-column:1/-1;grid-row:2;justify-content:center;border-top:1px solid var(--line);margin-top:5px;padding-top:5px}nav :is(button,a[data-go]){flex:1;font-size:12px;padding:9px 8px;border-radius:6px}.nav-number{font-size:9px}.welcome{left:18px;right:18px;top:calc(var(--header) + 17px);width:auto;max-width:360px;padding:19px 22px 18px;background:#fcf9f3ed;border-radius:4px 25px 4px 4px}.welcome h1{font-size:33px;margin-bottom:11px}.welcome .eyebrow{font-size:6.9px;letter-spacing:.11em;margin-bottom:12px}.welcome>p:not(.eyebrow){font-size:11px;margin-bottom:12px}.welcome-start{font-size:11px}.welcome-start span{width:26px;height:26px}.explore-dock{left:12px;right:12px;bottom:calc(var(--footer) + 12px);padding:12px;display:grid;grid-template-columns:1fr;gap:11px;border-radius:10px}.whereabouts{display:none}.look-controls{justify-content:space-between;padding:0 3px}.look-controls>button{width:35px;height:35px}.look-controls small{display:block;font-size:8px}.look-controls>div span{font-size:11px}.advance-button{font-size:12px;padding:11px 15px;min-height:43px}.hotspot{gap:7px}.pin{width:36px;height:36px}.pin svg{width:18px;height:18px}.hotspot-label{padding:8px 11px;min-width:110px}.hotspot-label strong{font-size:11px}.hotspot-label small{font-size:7px}.experience-footer{padding:0 13px;font-size:8px;gap:8px}.footer-hint{display:none!important}.experience-footer button{font-size:8px}.journey-notice{top:calc(var(--header) + 18px);font-size:10px;padding:11px 16px}.destination-panel{left:10px;right:10px;width:auto;top:calc(var(--header) + 17vh);bottom:calc(var(--footer) + 8px);border-radius:12px}.panel-top{padding:9px 13px 9px 20px}.panel-top>span{font-size:9px}.panel-scroll{padding:23px 22px}.panel-scroll h2{font-size:38px}.panel-scroll p.lead{font-size:14px}.panel-scroll>p{font-size:13px}.panel-bottom{padding:11px 17px;gap:8px}.panel-bottom .text-button{font-size:10px}.next-stop{font-size:10px;padding:11px 12px}.location-caption{left:20px;top:calc(var(--header) + 20px);bottom:auto;max-width:80vw}.location-caption .back-link{display:none}.location-caption .eyebrow{font-size:7px;margin:0 0 5px}.location-name{font-size:28px;margin:0}.location-description{display:none}.location-caption:before{inset:-30px -60px -45px -40px;background:radial-gradient(ellipse at center,#142c2a99,transparent 72%)}.teacher-intro{grid-template-columns:1fr 115px;gap:14px}.teacher-intro img{height:150px}.teacher-intro h2{font-size:41px}.teacher-intro p{font-size:11px}.teacher-intro .teacher-full-name{font-size:12px}.facts strong{font-size:15px}.facts span{font-size:9px}.photo-album{gap:11px}.photo-album img{height:120px}.photo-album figcaption{font-size:12px}.try-it{padding:19px}.try-it h3{font-size:24px}.reflection-options button{font-size:11px;padding:11px 8px}.resource-grid{gap:9px}.resource-grid>a{padding:14px}.resource-grid strong{font-size:12px}.program-card{padding:20px}.program-card h3{font-size:29px}.program-header{grid-template-columns:1fr 75px;gap:12px}.program-header img{height:110px;width:75px}.program-card .eyebrow{font-size:7px;letter-spacing:.1em}.program-actions{gap:14px}.program-actions>.primary-link{width:100%}.primary-link{font-size:11px}.map-dialog{padding:28px 18px;max-width:calc(100vw - 24px)}.map-dialog h2{font-size:33px}.map-place{width:96px;padding:8px}.map-place strong{font-size:11px}.map-place small{font-size:8px}.map-place span{font-size:8px}.neighborhood-map{margin-top:20px;aspect-ratio:440/290}.map-school{top:6%;left:50%}.map-bookshop{left:17%;top:40%}.map-cafe{left:83%;top:40%}.map-home{bottom:0}}
@media(max-height:630px) and (min-width:761px){.welcome{top:calc(var(--header) + 12px);padding:17px 23px;width:370px}.welcome h1{font-size:31px}.welcome .eyebrow{margin-bottom:10px}.welcome>p:not(.eyebrow){margin-bottom:10px}.explore-dock{bottom:calc(var(--footer) + 12px);padding-block:10px}.location-caption{bottom:calc(var(--footer) + 20px)}.location-description{display:none}}
@media(max-width:360px){.brand>span{font-size:11px}.header-actions{gap:4px}.utility{padding:7px}.welcome{padding:17px}.welcome h1{font-size:29px}.welcome .eyebrow{font-size:6px}.teacher-intro{grid-template-columns:1fr 95px}.teacher-intro img{height:135px}.teacher-intro h2{font-size:36px}.panel-scroll{padding-inline:18px}.program-card{padding:16px}.format-pill{font-size:9px}.map-place{width:82px}.map-place strong{font-size:10px}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Revision 29 September: larger reading sizes and clear link destinations. */
:root{--footer:36px;--muted:#606458}
body{font-size:17px}
.site-header{gap:14px;padding-inline:28px}
.brand>span{font-size:15px}.brand small{font-size:12px}
nav{gap:3px}nav :is(button,a[data-go]){font-size:15px;padding:13px 14px}.nav-number{font-size:12px}
.header-actions{gap:7px}.utility{font-size:14px;min-height:44px;text-decoration:none;padding:10px 12px}.utility svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.5;fill:none;stroke-linecap:round}.student-access{color:var(--burgundy);background:#f5e8dd}
.welcome{width:475px;padding:27px 30px}.welcome h1{font-size:44px}.welcome .eyebrow{font-size:10px;letter-spacing:.09em;white-space:normal}.welcome>p:not(.eyebrow){font-size:16px}.welcome-start{font-size:15px}
.hotspot-label strong{font-size:16px}.hotspot-label small{font-size:10px}.hotspot-label{min-width:150px}.pin{width:45px;height:45px}
.whereabouts small{font-size:10px}.whereabouts strong,.look-controls>div span,.advance-button{font-size:15px}.look-controls small{font-size:12px}.look-controls{gap:15px}.look-controls>button{height:44px;width:44px}.advance-button{min-height:48px}.experience-footer,.experience-footer button{font-size:12px}.footer-hint{font-size:11px}
.destination-panel{width:min(720px,58vw)}.panel-scroll{padding:30px 34px}.panel-top>span{font-size:13px}.close-button{width:38px;height:38px}.panel-scroll h2{font-size:50px}.panel-scroll h3,.pillar h3{font-size:26px}.panel-scroll p,.panel-scroll>p,.pillar p:last-child,.program-card p,.try-it p,.teacher-intro p{font-size:17px;line-height:1.65;color:#454b42}.panel-scroll p.lead{font-size:20px;line-height:1.6}.panel-scroll .eyebrow,.pillar .eyebrow,.try-it .eyebrow,.program-card .eyebrow{font-size:11px;letter-spacing:.12em;color:var(--burgundy)}.panel-scroll .fine-print,.try-it .fine-print{font-size:14px;color:#606458;line-height:1.6}.text-button,.text-link,.primary-link,.next-stop,.panel-bottom .text-button{font-size:15px}.next-stop,.primary-link{min-height:46px}.chapter-number{font-size:36px}.try-it{padding:26px;margin-top:18px}.try-it h3{font-size:29px}.reflection-options button{font-size:16px;padding:14px 12px;line-height:1.45}.reflection-result{font-size:16px}.panel-scroll .closing-note{font-size:26px}.back-link,.location-description{font-size:15px}
.teacher-intro{grid-template-columns:1fr 175px}.teacher-intro img{height:225px}.teacher-intro .teacher-full-name{font-size:17px}.facts strong{font-size:21px}.facts span{font-size:14px}.photo-album img{height:185px}.photo-album figcaption{font-size:16px}.teacher-story{margin-top:24px}
.resources-section{margin-top:32px}.resource-grid{gap:16px}.resource-grid>a.image-resource{min-height:260px;padding:22px;display:flex;flex-direction:column;justify-content:flex-end;color:white;background:#22362d;border:0;isolation:isolate}.image-resource img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;filter:none;transition:transform .3s}.image-resource:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#16251c0a 0%,#13271e66 28%,#14251ce6 68%,#14251cfa 100%);z-index:-1}.resource-grid .hiragana-resource img{object-position:24% center}.resource-grid .katakana-resource img{object-position:59% center}.resource-grid strong{font-size:20px;line-height:1.3}.resource-grid strong span{font-size:19px;margin-left:4px}.resource-grid small{font-size:14px;color:#fff;line-height:1.55;margin-top:8px}.resource-grid .kana,.resource-grid .resource-symbol{font-size:40px;color:#fff;margin-bottom:28px;position:relative;text-shadow:0 2px 12px #0008}.resource-tag{font-size:12px;line-height:1.4;margin-top:16px;color:#f2e7d8}.image-resource:hover img{transform:scale(1.04)}.image-resource:hover{box-shadow:0 6px 20px #28332635}
.testimonials-featured,.testimonials-mini{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.testimonials-mini{margin-top:14px}.testimonial{margin:0;padding:0;overflow:hidden;border-radius:9px;align-self:stretch}.testimonial:hover{border-color:var(--burgundy);box-shadow:0 4px 16px #28332618}.testimonial-featured{display:flex;flex-direction:column}.testimonial-featured>img{width:100%;height:255px;object-fit:contain;background:#182028;padding:7px}.testimonial-copy{display:block;padding:18px}.testimonial strong{font-size:18px}.testimonial-summary{display:block;font-size:15px;line-height:1.6;margin:8px 0 12px;color:#454b42}.testimonial small{font-size:13px;color:var(--burgundy);text-decoration:underline;text-underline-offset:4px}.testimonial-mini{display:flex;align-items:flex-start;background:#f3ede2}.testimonials>.fine-print{margin-top:18px}.contact-details{margin-top:26px;border-top:1px solid var(--line);padding-top:20px;display:flex;flex-wrap:wrap;gap:15px 26px;align-items:center}.contact-link{margin:0;padding:0;border:0;font-size:16px}.contact-details>small{font-size:13px;color:var(--muted)}
.program-card{padding:28px}.program-card h3{font-size:38px}.format-pill{font-size:14px}.checklist li,summary,details p,details .lesson-list li,.general-faq summary{font-size:16px;line-height:1.65}.checklist li{margin-block:12px}.hours-grid strong{font-size:30px}.hours-grid span{font-size:14px}.already-student{font-size:16px}.map-dialog>p:not(.eyebrow){font-size:16px}.map-dialog>.eyebrow,.map-dialog .fine-print{font-size:12px}.map-place strong{font-size:15px}.map-place small,.map-place span{font-size:12px}.map-place{width:135px}.map-home{font-size:12px}.image-dialog>p{font-size:15px}
@media(min-width:1600px){.destination-panel{width:760px}.panel-scroll{padding:36px 42px}.resource-grid>a.image-resource{min-height:285px}}
@media(max-width:1180px) and (min-width:761px){:root{--header:120px}.site-header{display:grid;grid-template-columns:1fr auto;grid-template-rows:59px 50px;padding:5px 24px;gap:0 12px}.brand{grid-column:1;grid-row:1}.header-actions{grid-column:2;grid-row:1}nav{grid-row:2;grid-column:1/-1;justify-content:center;border-top:1px solid var(--line);padding-top:6px}.utility span{display:inline}.utility{padding:9px 12px}.brand>span{font-size:15px}.brand small{font-size:12px}.destination-panel{width:62vw;right:16px}.location-caption{max-width:30vw}.welcome{width:430px}.welcome h1{font-size:40px}.whereabouts{display:none}.look-controls small{display:block}.panel-scroll{padding:26px}.teacher-intro{grid-template-columns:1fr 145px}.teacher-intro img{height:195px}}
@media(max-width:760px){:root{--header:166px;--footer:32px}.site-header{display:grid;grid-template-columns:1fr;grid-template-rows:40px 44px 45px;gap:8px;padding:12px 16px 0;align-content:start}.brand{grid-column:1;grid-row:1}.brand>span{font-size:14px}.brand small{font-size:11px}.header-actions{grid-row:2;grid-column:1;justify-content:space-between;gap:6px}.utility{padding:9px 11px;font-size:13px;min-height:42px;gap:5px}.utility span{display:inline}.utility svg{width:17px;height:17px}.student-access{flex:1;justify-content:center}nav{grid-row:3;grid-column:1;margin:0;padding-top:4px}nav :is(button,a[data-go]){font-size:14px;padding:9px 7px}.nav-number{font-size:11px;margin-right:4px}.welcome{top:calc(var(--header) + 15px);left:16px;right:16px;width:auto;padding:20px 22px}.welcome h1{font-size:34px}.welcome .eyebrow{font-size:9px;letter-spacing:.08em}.welcome>p:not(.eyebrow){font-size:14px}.welcome-start{font-size:14px}.hotspot-label strong{font-size:14px}.hotspot-label small{font-size:9px}.hotspot-label{min-width:130px;padding:9px 11px}.pin{height:39px;width:39px}.look-controls>div span{font-size:14px}.look-controls small{font-size:10px}.advance-button{font-size:14px}.experience-footer,.experience-footer button{font-size:10px}.destination-panel{width:auto;left:10px;right:10px;top:calc(var(--header) + 90px)}.panel-scroll{padding:24px 20px}.panel-scroll h2,.teacher-intro h2{font-size:42px}.panel-scroll p,.panel-scroll>p,.pillar p:last-child,.program-card p,.try-it p,.teacher-intro p{font-size:16px}.panel-scroll p.lead{font-size:18px}.panel-scroll h3,.pillar h3{font-size:25px}.panel-scroll .eyebrow{font-size:10px}.panel-top{padding:8px 12px 8px 19px}.panel-top>span{font-size:12px}.panel-bottom{padding:11px 15px}.next-stop,.panel-bottom .text-button{font-size:13px}.location-name{font-size:32px}.location-caption .eyebrow{font-size:10px}.teacher-intro{grid-template-columns:1fr 110px;gap:12px}.teacher-intro img{height:155px}.teacher-intro .teacher-full-name{font-size:16px}.facts strong{font-size:18px}.facts span{font-size:12px}.photo-album img{height:130px}.photo-album figcaption{font-size:14px}.try-it{padding:20px}.reflection-options button{font-size:15px}.resource-grid{grid-template-columns:1fr;gap:14px}.resource-grid>a.image-resource{min-height:250px;padding:23px}.resource-grid strong{font-size:23px}.resource-grid small{font-size:15px}.testimonials-featured{grid-template-columns:1fr}.testimonial-featured>img{height:auto;max-height:420px;padding:10px}.testimonials-mini{gap:10px}.testimonial-copy{padding:15px}.testimonial strong{font-size:17px}.testimonial-summary{font-size:14px}.testimonial small{font-size:12px}.program-card{padding:21px}.program-card h3{font-size:33px}.format-pill{font-size:12px}.hours-grid{gap:10px}.hours-grid span{font-size:12px}.hours-grid strong{font-size:27px}.program-actions>.primary-link{font-size:15px}.map-place{width:98px}.map-place strong{font-size:12px}.map-place small,.map-place span{font-size:10px}.map-dialog h2{font-size:34px}.map-dialog>p:not(.eyebrow){font-size:14px}.image-dialog{padding:44px 12px 16px}.image-dialog>img{max-height:66dvh}.image-dialog>p{font-size:14px}}
@media(max-width:360px){.site-header{padding-inline:12px}.utility{padding:8px;font-size:12px;gap:4px}.brand>span{font-size:13px}.welcome h1{font-size:30px}.welcome{padding:18px}.welcome .eyebrow{font-size:8px}.welcome>p:not(.eyebrow){font-size:13px}.panel-scroll{padding-inline:17px}.teacher-intro{grid-template-columns:1fr 88px}.teacher-intro h2{font-size:37px}.teacher-intro img{height:140px}.facts{gap:7px}.facts strong{font-size:16px}.facts span{font-size:11px}.testimonials-mini{grid-template-columns:1fr}.map-place{width:85px}.map-place strong{font-size:11px}.format-pill{white-space:normal}.program-header{grid-template-columns:1fr 65px}.program-header img{width:65px}.program-card{padding:17px}}
@media(max-height:650px) and (min-width:761px){.welcome{width:420px;padding:20px 24px}.welcome h1{font-size:36px}.welcome>p:not(.eyebrow){font-size:14px}.explore-dock{padding-block:10px}}

/* Compact introduction: keep the building markers unobstructed. */
.welcome{width:360px;left:28px;top:calc(var(--header) + 18px);padding:20px 23px 19px;border-top-right-radius:28px}
.welcome h1{font-size:33px;margin-bottom:12px}.welcome .eyebrow{font-size:9px;letter-spacing:.07em;margin-bottom:12px}
.welcome>p:not(.eyebrow){font-size:14px;line-height:1.5;margin-bottom:13px}.welcome .desktop-only{display:none}
.welcome-start{font-size:14px;gap:20px}.welcome-start span{width:27px;height:27px;font-size:16px}
@media(min-width:1600px){.welcome{left:38px;width:390px;padding:22px 26px}.welcome h1{font-size:36px}}
@media(max-width:760px){.welcome{left:16px;right:16px;max-width:330px;width:auto;top:calc(var(--header) + 12px);padding:17px 19px}.welcome h1{font-size:29px}.welcome .eyebrow{font-size:8px;margin-bottom:10px}.welcome>p:not(.eyebrow){font-size:13px;margin-bottom:10px}.welcome-start{font-size:13px}}
@media(max-height:680px){.welcome{padding:15px 19px;max-width:335px}.welcome h1{font-size:28px;margin-bottom:9px}.welcome .eyebrow{margin-bottom:8px;font-size:8px}.welcome>p:not(.eyebrow){font-size:13px;margin-bottom:9px}.welcome-start{font-size:13px}}

/* The same useful destinations as the original footer, in the street palette. */
:root{--footer:82px}
.experience-footer{display:flex;flex-direction:column;justify-content:center;gap:7px;padding:8px 28px;isolation:isolate;border-top:1px solid #dcd6cb;background:var(--paper)}
.experience-footer:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#fcf9f3eb,#fcf9f3f2),url("/assets/ruta/calle-panorama.png") center 67%/cover;pointer-events:none}
.footer-links{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;width:100%;margin:0;padding:0;border:0}
.footer-links a,.footer-links button{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:6px 14px;min-height:31px;border:1px solid #ded7cb;border-radius:6px;font-size:13px;font-weight:550;letter-spacing:0;line-height:1.3;text-decoration:none;color:#454c40;background:#fcf9f38c}
.footer-links a:hover,.footer-links button:hover{background:#f1e4d5;border-color:#bba38a;color:var(--burgundy)}
.footer-links a>span{display:inline;color:var(--burgundy)}
.footer-meta{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;font-size:11px;line-height:1.4}.footer-meta>button{padding:2px 0;font-size:11px}.footer-meta>span{white-space:nowrap}.footer-meta .footer-hint{font-size:10px}
@media(max-width:760px){:root{--footer:128px}.experience-footer{padding:7px 13px;gap:6px}.footer-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 7px;grid-row:auto;grid-column:auto}.footer-links a,.footer-links button{font-size:12px;min-height:27px;padding:4px 7px;border-radius:5px;flex:initial}.footer-meta{font-size:10px;gap:6px}.footer-meta>button{font-size:10px}.welcome{padding:15px 18px}.welcome h1{font-size:27px}.welcome>p:not(.eyebrow){line-height:1.45}.welcome .eyebrow{margin-bottom:8px}.explore-dock{gap:8px;padding:10px}.look-controls>button{width:38px;height:38px}.advance-button{min-height:43px}}
@media(max-width:760px) and (max-height:780px){.welcome .eyebrow{display:none}.welcome h1{font-size:25px;margin-bottom:9px}.welcome>p:not(.eyebrow){font-size:13px}.welcome-start{font-size:12px}.welcome-start span{width:24px;height:24px}}
.footer-email{font-size:13px;color:var(--burgundy);text-decoration:none;text-underline-offset:3px}.footer-email:hover{text-decoration:underline}
@media(max-width:760px){:root{--footer:154px}.footer-meta{display:grid;grid-template-columns:1fr auto;gap:5px 8px}.footer-email{grid-row:1;grid-column:1/-1;justify-self:center;font-size:13px;padding:2px 0}.footer-meta .local-status{grid-row:2;grid-column:1}.footer-meta #motion-toggle{grid-row:2;grid-column:2}.footer-links a{gap:4px;font-size:11px}.welcome>p:not(.eyebrow){font-size:13px}}
@media(max-width:760px) and (max-height:780px){.welcome>p:not(.eyebrow){display:none}}
@media(max-width:760px) and (max-height:720px){.welcome{padding:12px 16px}.welcome h1{font-size:22px;margin-bottom:7px}.welcome-start span{width:22px;height:22px}.hotspot-label{padding:7px 10px}.pin{width:35px;height:35px}}
.compact-intro .welcome{padding:12px 18px}.compact-intro .welcome .eyebrow,.compact-intro .welcome>p:not(.eyebrow),.compact-intro .welcome h1 br{display:none}.compact-intro .welcome h1{font-size:0;margin-bottom:9px}.compact-intro .welcome h1 em{display:block;font-size:24px;line-height:1.1}.no-room-intro .welcome{visibility:hidden;pointer-events:none}
@media(min-width:420px) and (max-width:760px){:root{--footer:130px}.footer-links{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Two views of the same site; the original page keeps an isolated stylesheet. */
#reading-view{position:fixed;inset:0;background:#fbf7f2}
#reading-frame{display:block;width:100%;height:100%;border:0;background:#fbf7f2}
.experience-footer{height:auto;min-height:82px}
.footer-links .footer-icon{width:22px;height:22px;flex:0 0 22px;display:block;object-fit:contain}
.footer-links .kana-icon{font-family:serif;font-size:22px;line-height:22px;color:var(--burgundy);text-align:center}
.footer-links .footer-label{display:block;color:inherit}
.footer-links .whatsapp-prefix{display:inline;color:inherit}
.line-icon{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.footer-links .whatsapp-icon{color:#25d366}
.footer-links .yokai-icon{border-radius:20%}
.footer-links .whatsapp-link{background:#eff7ed;border-color:#c2d9c6;color:#195d3e}
.footer-links .whatsapp-link:hover{background:#e0f1df;border-color:#85b49a;color:#124b32}
.footer-links .whatsapp-link .external-arrow{color:#195d3e}
.footer-links .external-arrow{font-size:13px}
.footer-email{display:inline-flex;align-items:center;gap:7px}
.footer-email svg{width:17px;height:17px;flex:none}
@media(max-width:760px){.footer-links .footer-icon{width:19px;height:19px;flex-basis:19px}.footer-links .kana-icon{font-size:20px;line-height:19px}.footer-links a{min-height:32px;padding:5px 6px;gap:6px}.footer-links .whatsapp-prefix{display:none}.footer-links .footer-label{font-size:12px}.experience-footer{padding-block:8px}}
@media(max-width:360px){.header-actions{gap:5px}.header-actions .utility{font-size:11px;padding-inline:7px}.header-actions .utility svg{width:16px;height:16px}}

#navigation a[data-go]{font-family:inherit;text-decoration:none;color:inherit;display:inline-flex;align-items:center;justify-content:center;transition:background .2s,color .2s,box-shadow .2s}
.cookie-consent{z-index:100}.cookie-consent__copy p{color:#4e544b}.cookie-consent a{color:#8a1f2d}.cookie-consent__button{font:600 14px/1.3 var(--sans)}

/* La bifurcación se muestra completa, sin cubrir los caminos con el texto. */
.resource-grid>a.game-resource{padding:0;justify-content:flex-start;gap:0;background:#1d2a26}
.game-resource img{position:relative;inset:auto;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;flex-shrink:0;z-index:0;transform:none}
.game-resource:hover img{transform:none}
.game-resource::after{display:none}
.game-resource .resource-symbol{display:none}
.game-resource strong{margin:18px 22px 8px}
.game-resource small{margin:0 22px 12px}
.game-resource .resource-tag{margin:0 22px 22px}
