@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.block{display:block}.contents{display:contents}.hidden{display:none}.inline{display:inline}.table{display:table}}:root{--night:#101c30;--navy:#17263c;--panel:#1c2d45;--line:#9a7458;--gold:#e9b96f;--cream:#f4e9d2;--ink:#1b2940;--pink:#e97d98;--aqua:#54b8cc;--muted:#9eaec4}*{box-sizing:border-box}html{background:#0e1727}body{color:#f8eee0;background:radial-gradient(circle at 55% -10%,#32405d 0,#15243a 44%,#0e1727 100%);min-height:100vh;margin:0;font-family:Georgia,Noto Serif,serif}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}button:focus-visible,input:focus-visible,canvas:focus-visible{outline-offset:3px;outline:3px solid #64c8d2}.loading{padding:3rem}.app-shell{max-width:1540px;margin:0 auto;padding:0 20px 20px}.topbar{border-bottom:1px solid #755b4c;justify-content:space-between;align-items:center;height:82px;display:flex}.brand{color:#fff2d8;background:0 0;border:0;align-items:baseline;gap:16px;padding:0;display:flex}.brand>span{letter-spacing:-3px;text-shadow:3px 3px #613e52;font-size:36px;font-style:italic;font-weight:900}.brand>span span{color:var(--pink)}.brand small{letter-spacing:.22em;font-size:13px;font-style:normal}.top-status{color:#f5dec1;gap:12px;font-size:14px;display:flex}.top-status span{background:#1b2b43;border:1px solid #876b55;border-radius:6px;padding:8px 12px}.navigation{scrollbar-width:none;gap:7px;padding:12px 0 18px;display:flex;overflow:auto}.navigation button{color:#f4e7d5;white-space:nowrap;background:#1a2b43;border:1px solid #9c755c;border-radius:6px;align-items:center;gap:8px;padding:10px 16px;font-size:15px;display:flex;box-shadow:inset 0 0 0 2px #122038}.navigation button.active{background:var(--cream);color:#1b2b43;border-color:#f4d7a2}.nav-icon{font-size:20px;line-height:1}.main-content{min-height:70vh}.hero{background-position:50%;background-size:cover;border:2px solid #a77a5e;border-radius:8px;align-items:center;min-height:380px;display:flex;position:relative;overflow:hidden;box-shadow:0 15px 35px #090f1bd0,inset 0 0 0 5px #14243d}.hero:after{content:"✿";color:#ff9bb7;text-shadow:30px 42px #d96d8e,-10px 70px #e8799c;font-size:38px;position:absolute;top:10px;right:28px}.hero-copy{z-index:1;max-width:580px;padding:46px 55px;position:relative}.eyebrow{color:var(--gold);letter-spacing:.22em;font-family:Arial,sans-serif;font-size:12px;font-weight:800}.eyebrow.dark{color:#8e5146}.hero h1{text-shadow:3px 4px #101c30;letter-spacing:-.04em;margin:16px 0 18px;font-size:clamp(36px,4vw,64px);line-height:1.03}.hero p{color:#f0dcc9;margin:0 0 24px;font-size:20px}.hero-jp{text-shadow:2px 2px 4px #000;font-size:19px;position:absolute;bottom:28px;right:35px}.primary-action,.secondary-action,.sound-button{border:1px solid #624534;border-radius:5px;padding:11px 18px;font-weight:700;transition:transform .15s,filter .15s;box-shadow:0 4px #1a2336}.primary-action:hover,.secondary-action:hover,.sound-button:hover{filter:brightness(1.08);transform:translateY(-2px)}.primary-action{color:#192841;background:#f1ddbd}.secondary-action{color:#f8eee0;background:#233952;border-color:#9a765a}.sound-button{color:#fff;background:#2d6785}.dashboard-grid{grid-template-columns:1.35fr .68fr 1fr;gap:12px;margin-top:14px;display:grid}.panel{background:linear-gradient(150deg,#20334e,#15233a 65%);border:1px solid #a57a5e;border-radius:6px;overflow:hidden;box-shadow:inset 0 0 0 3px #142139,0 7px 20px #070c1755}.panel-heading{background:linear-gradient(90deg,#273b55aa,#15223855);border-bottom:1px solid #715847;justify-content:space-between;align-items:center;gap:10px;min-height:48px;padding:0 16px;font-size:18px;font-weight:700;display:flex}.panel-heading small{letter-spacing:.1em;color:#d8b58b;font-family:Arial,sans-serif;font-size:10px}.progress-body{grid-template-columns:92px 1fr;gap:16px;padding:21px 18px 13px;display:grid}.avatar{color:#fff4db;text-shadow:3px 3px #15243b;background:linear-gradient(140deg,#e496a5 0 22%,#544d67 22% 48%,#132943 48%);border:3px solid #c4a377;place-items:center;width:92px;height:92px;font-size:46px;display:grid;box-shadow:inset 0 0 0 4px #192944}.progress-body h2{margin:0;font-size:20px}.progress-body p{color:var(--muted);margin:5px 0 11px}.level-line{justify-content:space-between;margin-bottom:6px;font:14px Arial,sans-serif;display:flex}.level-line span{color:#b7c8d6}.meter{background:#0c1828;border:1px solid #7891a4;border-radius:9px;width:100%;height:10px;display:block;overflow:hidden}.meter>span{background:linear-gradient(90deg,#1c97b6,#80d7d5);border-radius:8px;height:100%;display:block}.stat-row{color:#d6dbe0;border-top:1px solid #40546c;justify-content:space-between;padding:12px 18px;font-size:14px;display:flex}.parchment{color:var(--ink);background:#f4e7cd;border:2px solid #d3ac79;box-shadow:inset 0 0 0 5px #f9efd9,0 7px 20px #070c1755}.daily-panel{text-align:center;padding:18px}.daily-panel strong{margin:3px 0;font-size:28px;display:block}.daily-panel strong small{font-size:14px;font-weight:400}.daily-ring{background:conic-gradient(#208ca8 var(--ring),#b9c1be var(--ring));border-radius:50%;place-items:center;width:106px;height:106px;margin:5px auto;display:grid;position:relative}.daily-ring:before{content:"";background:#f5e7cf;border-radius:50%;position:absolute;inset:12px}.daily-ring span{z-index:1;font-size:24px;font-weight:800}.daily-ring small{font:11px Arial,sans-serif;display:block}.daily-panel p{margin:8px 0 0;font-size:13px}.route-panel{flex-direction:column;display:flex}.route-mini{flex:1;padding:18px 20px 8px}.route-mini>div{color:#9baac0;align-items:center;gap:13px;padding:4px 0;display:flex}.route-mini>div.arrived{color:#f4e7d3}.route-dot{background:#223751;border:1px solid #9d765c;border-radius:50%;place-items:center;width:29px;height:29px;display:grid}.route-mini .arrived .route-dot{color:#ffe8b9;background:#ab5c4e}.route-panel .secondary-action{margin:8px 20px 18px}.study-frame{background:#132138;border:1px solid #957058;border-radius:7px;margin-top:18px;padding:16px;box-shadow:0 7px 22px #050b17}.study-heading{justify-content:space-between;align-items:center;display:flex}.study-heading h2{margin:6px 0 16px}.session-time{color:#f8e7cf;text-align:right;font:700 28px Arial,sans-serif}.session-time small{color:#adc1ce;font:12px Arial,sans-serif;display:block}.study-card{border-radius:6px;max-width:760px;min-height:240px;margin:auto;padding:20px}.study-card.listen{background:#deedf0}.study-card.read{background:#e1ece7}.study-card.recognize{background:#e1eee1}.study-card.recall,.study-card.produce{background:#f1dfd7}.study-card.context{background:#e7e0ef}.exercise-meta{color:#4d6378;border-bottom:1px solid #d2b890;justify-content:space-between;padding-bottom:10px;font:700 13px Arial,sans-serif;display:flex}.exercise-content{text-align:center;min-height:80px}.exercise-content p{margin:25px 0 5px;font-size:22px}.japanese{font-family:Noto Serif JP,Yu Mincho,Hiragino Mincho ProN,serif}.japanese.large{margin-top:16px;font-size:70px}.prompt-jp{min-height:15px;font-size:45px}.reading{color:#5d6b74}.translation{margin:8px 0;font-size:25px}.teaching{text-align:center;padding:15px}.teaching p{max-width:500px;margin:12px auto 18px}.teaching small{color:#725858;margin-top:15px;display:block}.button-row{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.sound-orb{color:#fff;background:#315a7a;border:2px solid #fff;border-radius:50%;width:70px;height:70px;margin:15px auto;font-size:30px;display:block}.answer-grid{grid-template-columns:1fr 1fr;gap:10px;max-width:560px;margin:25px auto;display:grid}.answer-grid button{color:#21324a;background:#fff9eb;border:1px solid #a48d75;border-radius:5px;padding:14px;font-size:19px}.answer-grid button:hover{background:#f6dcb5}.answer-form{gap:10px;max-width:590px;margin:25px auto;display:flex}.answer-form input,.toolbar input{color:#17263e;background:#fffaf0;border:1px solid #b0a08e;border-radius:5px;flex:1;min-width:0;padding:12px}.feedback{background:#f9f1dd;border:1px solid #a28b72;border-left:6px solid #2796a9;max-width:600px;margin:15px auto 0;padding:16px}.feedback.try-again{border-left-color:#b45d57}.feedback p{margin:8px 0}.feedback button{margin-top:8px}.section-title{margin:16px 0 21px}.section-title h1{margin:6px 0;font-size:clamp(30px,3.5vw,48px)}.section-title p{color:#c3cdd9;margin:0;font-size:17px}.map-board{background:linear-gradient(#101d30a0,#101d30a0),url(/art/tokyo-journey.png) 50% 45%/cover;border:2px solid #a37a5c;border-radius:7px;justify-content:space-around;align-items:center;gap:20px;min-height:420px;padding:25px;display:flex;position:relative}.map-board:before{content:"";background:repeating-linear-gradient(90deg,#f8ca7b 0 18px,#0000 18px 32px);height:4px;position:absolute;top:50%;left:16%;right:16%;transform:rotate(-5deg)}.map-stop{z-index:1;text-align:center;background:#1a2a42e8;border:1px solid #b58863;border-radius:7px;min-width:190px;padding:20px;position:relative;box-shadow:0 10px 20px #0008}.map-stop.locked{filter:grayscale(.7);opacity:.85}.map-node{background:#a95245;border:2px solid #e9c78d;border-radius:50%;place-items:center;width:64px;height:64px;margin:0 auto 8px;font-size:30px;display:grid}.map-stop>span{color:#e9b96f;font:12px Arial,sans-serif}.map-stop h2{margin:4px 0;font-size:20px}.map-stop small{color:#d5dddf}.place-cards{grid-template-columns:repeat(3,1fr);gap:12px;margin-top:13px;display:grid}.place-cards .muted{opacity:.65}.place-detail{padding:14px 16px}.place-detail .japanese{color:#f1c58c;font-size:33px}.place-detail p{margin:7px 0}.place-detail small{color:#c0cad7}.toolbar{align-items:center;gap:18px;max-width:650px;margin-bottom:15px;display:flex}.toolbar span{white-space:nowrap;color:#eacfa6}.card-grid{grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:10px;display:grid}.collection-card{color:var(--ink);background:#f5e9d3;border:2px solid #ae8260;border-radius:5px;min-height:178px;padding:13px;box-shadow:inset 0 0 0 4px #fff3dc}.collection-card.undiscovered{color:#b1bccb;background:#283851;box-shadow:inset 0 0 0 4px #18273d}.card-top{text-transform:uppercase;letter-spacing:.08em;justify-content:space-between;font:11px Arial,sans-serif;display:flex}.collection-card .japanese{text-align:center;margin:13px 0 2px;font-size:32px}.collection-card .reading{text-align:center;font-size:13px}.collection-card p{text-align:center;margin:8px 0 13px}.subheading{margin:28px 0 12px}.combo-list{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.combo-list article{flex-direction:column;gap:7px;padding:14px;display:flex}.combo-list strong{font-size:28px}.combo-list small{color:#c5cdd5}.error-list{gap:8px;max-width:750px;display:grid}.error-item{justify-content:space-between;align-items:center;padding:13px 17px;display:flex}.error-item div{align-items:center;gap:16px;display:flex}.error-item .japanese{font-size:26px}.error-item small{color:#c7cdd8}.empty-state{color:#cad3de;padding:24px}.stats-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.big-stat{color:#f1d09d;padding:22px;font-size:38px;font-weight:800}.big-stat small{color:#d6d9dd;font-size:14px;font-weight:400;display:block}.skill-panel{max-width:800px;margin-top:13px}.skill-line{border-top:1px solid #354862;grid-template-columns:120px 1fr 80px;align-items:center;gap:15px;padding:11px 18px;display:grid}.skill-line small{text-align:right}.writing-layout{grid-template-columns:450px 1fr;gap:14px;display:grid}.writing-panel{text-align:center;padding:18px}.writing-target{height:105px;font-size:75px}.drawing-box{max-width:320px;margin:auto}.drawing-box canvas{aspect-ratio:1;touch-action:none;background:repeating-linear-gradient(90deg,#0000 0 calc(50% - 1px),#d6c6aa calc(50% - 1px) 50%,#0000 50% 100%),repeating-linear-gradient(0deg,#0000 0 calc(50% - 1px),#d6c6aa calc(50% - 1px) 50%,#0000 50% 100%),#fffaf0;border:2px solid #b89f79;width:100%}.drawing-actions{justify-content:space-between;align-items:center;padding-top:10px;display:flex}.kana-picker>div:nth-child(2){flex-wrap:wrap;gap:8px;padding:16px;display:flex}.kana-picker button{color:#152840;background:#f2e6d0;border:1px solid #b89b75;border-radius:5px;min-width:52px;height:52px;font-size:24px}.kana-picker button.active{color:#fff2dd;background:#a5574a}.kana-picker p{color:#c5cfda;padding:0 16px}footer{text-align:center;color:#b2bdca;letter-spacing:.14em;border-top:1px solid #607084;margin-top:30px;padding:20px;font:11px Arial,sans-serif}footer span{color:#f391ae;vertical-align:middle;margin:0 35px;font-size:23px}@media (max-width:980px){.dashboard-grid{grid-template-columns:1fr 1fr}.route-panel{grid-column:1/-1}.route-mini{justify-content:space-around;display:flex}.place-cards,.writing-layout{grid-template-columns:1fr 1fr}}@media (max-width:680px){.app-shell{padding:0 12px 16px}.topbar{height:70px}.brand>span{font-size:29px}.brand small{display:none}.top-status{gap:5px}.top-status span{padding:7px;font-size:12px}.navigation{gap:5px;padding:8px 0 12px}.navigation button{padding:8px 9px;font-size:12px}.nav-icon{font-size:16px}.hero{background-position:62%;min-height:320px}.hero-copy{max-width:380px;padding:28px 25px}.hero h1{font-size:37px}.hero p{font-size:16px}.hero-jp{display:none}.dashboard-grid{grid-template-columns:1fr 1fr;gap:8px}.progress-panel,.daily-panel,.route-panel{grid-column:1/-1}.route-mini{display:block}.study-frame{padding:8px}.study-card{padding:15px}.exercise-content p{font-size:19px}.answer-grid button{padding:11px;font-size:16px}.answer-form{flex-direction:column}.map-board{flex-direction:column;gap:10px;min-height:530px}.map-board:before{width:4px;height:auto;inset:12% auto 12% 50%;transform:none}.map-stop{min-width:220px;padding:10px}.map-node{width:46px;height:46px;font-size:23px}.place-cards,.combo-list,.writing-layout{grid-template-columns:1fr}.stats-grid{grid-template-columns:1fr 1fr}.big-stat{padding:15px}.skill-line{grid-template-columns:95px 1fr 64px;gap:7px;padding:10px;font-size:13px}footer{line-height:2}}.avatar{image-rendering:pixelated;color:#0000;background:url(/art/traveler-portrait.png) 50%/cover}.session-controls{align-items:center;gap:14px;display:flex}.end-session{color:#e7c7af;background:0 0;border:1px solid #7a675b;border-radius:4px;padding:7px 10px;font-size:12px}.end-session:hover{background:#263952}.japanese-text{ruby-position:over;font-family:Noto Serif JP,Yu Mincho,Hiragino Mincho ProN,serif;line-height:1.65;display:inline-block}.japanese-text rt{letter-spacing:0;white-space:nowrap;color:#6f7882;font:500 .28em Arial,sans-serif}.brand .japanese-text rt,.hero-jp rt,footer .japanese-text rt,.place-jp rt,.combo-list .japanese-text rt,.error-item .japanese-text rt{color:#e1bc99}.brand .japanese-text rt{font-size:9px}.hero-jp{line-height:1.8}.collection-jp{text-align:center;margin:10px 0 2px;font-size:32px}.collection-jp .japanese-text{line-height:1.65}.place-jp{color:#f1c58c;font-size:33px}.kana-picker .japanese-text{font-size:23px}.kana-picker button{min-width:65px;height:65px}.feedback .japanese-text{font-size:30px}.study-card.trace{background:#f0e4d0}.stroke-trainer{color:#1b2940;max-width:430px;margin:12px auto}.stroke-title{color:#53677a;justify-content:space-between;align-items:center;gap:12px;font:600 13px Arial,sans-serif;display:flex}.stroke-character{color:#172b45;font-size:42px}.stroke-instruction{text-align:center;min-height:36px;font-size:14px}.stroke-board{aspect-ratio:1;background:linear-gradient(90deg,#0000 calc(50% - .5px),#e6d7bb 50%,#0000 calc(50% + .5px)),linear-gradient(#0000 calc(50% - .5px),#e6d7bb 50%,#0000 calc(50% + .5px)),#fffaf0;border:2px solid #b89f79;border-radius:4px;width:min(100%,320px);margin:8px auto;position:relative;overflow:hidden}.stroke-board svg,.stroke-board canvas{width:100%;height:100%;position:absolute;inset:0}.stroke-board svg{pointer-events:none}.stroke-board canvas{touch-action:none;cursor:crosshair}.stroke-progress,.stroke-actions{justify-content:space-between;align-items:center;gap:8px;font:13px Arial,sans-serif;display:flex}.stroke-actions{flex-wrap:wrap;margin-top:13px}.stroke-hint{color:#a03e37;font:13px Arial,sans-serif}.stroke-result{background:#ddf0e5;border:1px solid #7fae94;border-radius:5px;justify-content:space-between;align-items:center;gap:10px;padding:12px;font:13px Arial,sans-serif;display:flex}.stroke-result strong{color:#17684b;font-size:21px}.writing-panel{padding:14px}.writing-unavailable{text-align:center;padding:24px}@media (max-width:680px){.stroke-title{flex-direction:column;gap:0}.stroke-board{width:min(100%,320px)}.hero-jp{display:none}.kana-picker button{min-width:61px;height:61px}}.japanese-text rt{font-size:.42em}.stroke-character rt{font-size:16px}.kana-picker .japanese-text rt{font-size:12px}.companion-hint{align-items:flex-end;gap:12px;max-width:590px;margin:4px auto 20px;animation:.25s ease-out companion-arrive;display:flex}.companion-avatar{width:74px;height:74px;image-rendering:pixelated;background:url(/art/traveler-portrait.png) 50%/cover;border:2px solid #a77558;border-radius:6px;flex:0 0 74px;box-shadow:3px 4px #3b4b5f}.companion-message{color:#f9edda;background:#213a53;border:2px solid #b98765;border-radius:8px;flex:1;padding:11px 14px;position:relative;box-shadow:3px 4px #7f6657}.companion-message:before{content:"";background:#213a53;border-bottom:2px solid #b98765;border-left:2px solid #b98765;width:13px;height:13px;position:absolute;bottom:18px;left:-9px;transform:rotate(45deg)}.companion-message strong{color:#f6c98a;letter-spacing:.04em;font:700 12px Arial,sans-serif;display:block}.companion-message p{margin:5px 0 0;font-size:16px;line-height:1.35}.answer-grid button:disabled{opacity:.45;text-decoration:line-through}.answer-grid button:disabled:hover{background:#fff9eb}@keyframes companion-arrive{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (max-width:680px){.companion-avatar{flex-basis:58px;width:58px;height:58px}.companion-message p{font-size:14px}}.pronunciation-listen{min-width:150px;margin:15px auto 4px}.exercise-content:has(.pronunciation-listen){min-height:110px}.audio-notice{color:#8b4a43;max-width:420px;margin:9px auto;font:13px/1.4 Arial,sans-serif;display:block}.avatar-picker{color:#d2ddeb;flex-wrap:wrap;align-items:center;gap:7px;padding:0 18px 13px;font:12px Arial,sans-serif;display:flex}.avatar-picker>span{margin-right:5px}.avatar-picker button{color:#f3e6d6;background:#17283f;border:1px solid #786855;border-radius:5px;align-items:center;gap:7px;min-height:44px;padding:4px 8px;display:flex}.avatar-picker button.chosen{background:#31445f;border-color:#f4c786;box-shadow:inset 0 0 0 1px #f4c786}.avatar-picker img{object-fit:cover;width:32px;height:32px;image-rendering:pixelated;border-radius:3px}.stat-row{flex-wrap:wrap;gap:8px}.order-exercise{max-width:640px;margin:12px auto 22px}.order-slots,.order-options{border-radius:6px;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;min-height:77px;padding:11px;display:flex}.order-slots{background:#fff9ed;border:2px dashed #b99b77}.order-slots>span{color:#687587;text-align:center;font:14px Arial,sans-serif}.order-options{background:#e9d7b7;margin-top:12px}.order-slots button,.order-options button{color:#1d3049;background:#fffdf5;border:1px solid #94775e;border-radius:5px;min-width:58px;min-height:52px;padding:7px 12px;font-size:22px;box-shadow:0 3px #9b8066}.order-slots button{background:#dceef0;border-color:#5094a4}.order-exercise .japanese-text rt{font-size:11px}.order-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:15px;display:flex}.streak-celebration{margin:16px auto}.streak-celebration .companion-message,.streak-celebration .companion-message:before{background:#395037;border-color:#d6a355}.streak-celebration .companion-message strong{color:#ffe0a0}@media (max-width:680px){.avatar-picker{padding:0 12px 12px}.avatar-picker>span{width:100%}.order-slots button,.order-options button{padding:5px 8px;font-size:19px}.order-exercise .japanese-text rt{font-size:10px}}.backup-panel{max-width:720px}.backup-content{padding:18px}.backup-content p{color:#d7e0e8;line-height:1.5}.backup-import{border-top:1px solid #526078;gap:10px;margin-top:22px;padding-top:18px;display:grid}.backup-import label{color:#f3d4a9;font-weight:700}.backup-import input{color:#ecdfcf;max-width:100%}.backup-preview{background:#263d54;border:1px solid #bd9a6e;border-radius:5px;padding:14px}.backup-preview p{margin:8px 0 14px}.backup-preview button{margin:0 10px 7px 0}.backup-error{color:#ffc3b8!important}.backup-notice{color:#b8eed4!important}.account-screen{background:#101c30 url(/art/tokyo-journey.png) 50%/cover;place-items:center;min-height:100dvh;padding:24px;display:grid}.account-card{width:min(100%,420px);padding:32px;box-shadow:0 18px 60px #07101acc}.account-card h1{margin:.2em 0;font-size:clamp(2.4rem,9vw,4rem)}.account-card h1 span{color:#bd5562}.account-card form{gap:10px;margin:22px 0;display:grid}.account-card label{font-weight:700}.account-card input{color:#182536;width:100%;font:inherit;background:#fffaf0;border:1px solid #8c765c;border-radius:6px;padding:12px}.account-card .primary-action{margin-top:10px}.account-emblem{color:#bd5562;font-size:2rem}.account-panel{margin-top:16px}.update-banner{color:#17253c;text-align:center;background:#e8d9b6;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;padding:10px 16px;font-weight:700;display:flex}.update-banner button{color:#fff;font:inherit;cursor:pointer;background:#17253c;border:1px solid #17253c;border-radius:5px;padding:6px 14px}.update-banner button:disabled{opacity:.45;cursor:default}.order-exercise .japanese-text rt{color:#52687d;font-size:12px}@media (max-width:680px){.order-exercise .japanese-text rt{font-size:11px}}.route-map-layout{max-width:920px;margin:auto}.journey-path{gap:20px;display:grid}.journey-stop{background:linear-gradient(145deg,#192b44,#111f34);border:1px solid #9b7357;border-radius:12px;padding:18px;position:relative;box-shadow:0 8px 22px #07101e88}.journey-stop.future{opacity:.68}.journey-stop-heading{border-bottom:1px solid #7a6657;align-items:center;gap:14px;padding:2px 4px 16px;display:flex}.journey-stop-heading>div:nth-child(2){flex:1}.journey-stop-heading span{letter-spacing:.15em;color:#e9bd81;font:700 11px Arial,sans-serif}.journey-stop-heading h2{margin:2px 0 1px;font-size:25px}.journey-stop-heading .japanese-text{color:#d7c3a3;font-size:14px}.journey-stop-heading .japanese-text rt{font-size:9px}.journey-stop-heading small{color:#ddc7a5;font:13px Arial,sans-serif}.journey-stop-icon{background:#ab6148;border:2px solid #e4b87b;border-radius:50%;flex:none;place-items:center;width:54px;height:54px;font-size:24px;display:grid;box-shadow:0 3px #513d3a}.journey-levels{gap:12px;margin:20px 4px 4px;display:grid;position:relative}.journey-levels:before{content:"";border-left:3px dashed #a98867;position:absolute;top:18px;bottom:18px;left:26px}.journey-level{background:#20354d;border:1px solid #7e6859;border-radius:9px;align-items:center;gap:14px;min-height:74px;padding:11px 13px;display:flex;position:relative}.journey-level.done{background:#304d45;border-color:#90a26f}.journey-level.current{color:#1d3045;background:#f4e6ca;border:2px solid #e2b76f;box-shadow:0 0 0 3px #e2b76f33}.journey-level.locked{opacity:.72}.journey-level.final{border-style:dashed}.journey-level-medal{z-index:1;color:#fff7e9;background:#956b51;border:2px solid #d9b887;border-radius:50%;flex:none;place-items:center;width:54px;height:54px;font:700 22px Arial,sans-serif;display:grid;position:relative;box-shadow:0 3px #172237}.journey-level.done .journey-level-medal{background:#538673}.journey-level.current .journey-level-medal{background:#b9634e}.journey-level-copy{flex:1;min-width:0}.journey-level-copy strong{font-size:18px}.journey-level-copy p{margin:3px 0;font-size:14px}.journey-level-copy small{color:#567184;font:12px Arial,sans-serif;display:block}.route-level-action{color:#fff;background:#a95745;border:1px solid #6b3e38;border-radius:5px;min-height:44px;padding:10px 14px;font-weight:700}.route-notice{background:#dceacc;border:1px solid #739b64;border-radius:5px;padding:9px 12px;font-weight:700}@media (max-width:680px){.journey-stop{padding:12px}.journey-stop-heading{gap:9px}.journey-stop-heading h2{font-size:20px}.journey-stop-heading small{font-size:11px}.journey-stop-icon{width:45px;height:45px}.journey-level{gap:8px;padding:9px}.journey-level-copy strong{font-size:15px}.journey-level-copy p{font-size:12px}.journey-level-medal{width:43px;height:43px;font-size:18px}.journey-levels:before{left:21px}.route-level-action{padding:8px;font-size:12px}}
