:root{--navy:#1a2744;--navy-dark:#101a2e;--gold:#c9a227;--gold-light:#e6c667;--text:#2b2f3a;--text-muted:#6b7280;--bg:#f6f5f1;--card-bg:#fff;--border:#e3e1da;--danger:#b3411f;--success:#2f7d5a;--sans:"Hiragino Sans", "Noto Sans JP", system-ui, "Segoe UI", Roboto, sans-serif;font:16px/1.6 var(--sans);color:var(--text);background:var(--bg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;-webkit-font-smoothing:antialiased}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--navy:#223259;--gold:#d8b64a;--text:#e6e4dd;--text-muted:#a3a6ad;--bg:#12141a;--card-bg:#1b1e27;--border:#2a2d38}}*{box-sizing:border-box}body{margin:0}h1,h2,h3{color:var(--text);margin:0 0 8px}h1{font-size:28px;font-weight:700}h2{font-size:20px;font-weight:700}h3.small-heading{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 8px;font-size:14px;font-weight:700}p{margin:0 0 8px}.muted{color:var(--text-muted)}.small{font-size:13px}.app-shell{flex-direction:column;min-height:100svh;display:flex}.app-header{background:var(--navy);color:#fff;align-items:center;gap:24px;padding:12px 20px;display:flex}.brand{white-space:nowrap;font-weight:700}.nav{flex:1;gap:16px;display:flex}.nav a{color:#ffffffbf;border-bottom:2px solid #0000;padding:6px 0;font-size:14px;text-decoration:none}.nav a.active{color:#fff;border-bottom-color:var(--gold)}.header-right{color:#fffc;align-items:center;gap:10px;display:flex}main{flex:1}.page{text-align:left;max-width:760px;margin:0 auto;padding:24px 16px 64px}.centered-page{justify-content:center;align-items:center;min-height:100svh;padding:16px;display:flex}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;margin-bottom:16px;padding:20px}.login-card{text-align:left;width:360px;max-width:100%}.hero{background:linear-gradient(135deg, var(--navy), var(--navy-dark));color:#fff;border:none;align-items:center;gap:16px;display:flex}.hero h1{color:#fff}.hero .muted{color:#ffffffbf}.hero-icon{font-size:40px}.celebrate{text-align:center}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:16px;display:grid}.stat{text-align:center;flex-direction:column;align-items:center;gap:4px;display:flex}.stat-value{color:var(--navy);font-size:28px;font-weight:700}.stat-label{color:var(--text-muted);font-size:12px}.trend-up{color:var(--success);font-size:16px}.button{border:1px solid var(--border);background:var(--card-bg);color:var(--text);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:10px 18px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.button:disabled{opacity:.5;cursor:not-allowed}.button.primary{background:var(--navy);border-color:var(--navy);color:#fff}.button.ghost{border-color:var(--gold);color:var(--navy);background:0 0}@media (prefers-color-scheme:dark){.button.ghost{color:var(--gold-light)}}.button.small{padding:4px 10px;font-size:12px}.button-row{flex-wrap:wrap;gap:10px;display:flex}button{font-family:inherit}.field{flex-direction:column;gap:4px;margin-bottom:14px;font-size:14px;display:flex}.field span{font-weight:600}input,select,textarea{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;padding:8px 10px;font-family:inherit;font-size:15px}.textarea,.big-textarea{resize:vertical;width:100%}.big-textarea{margin-bottom:12px;font-size:16px}.error{color:var(--danger);font-size:13px}.hint{color:var(--text-muted);background:var(--bg);border-radius:8px;margin:8px 0;padding:8px 12px;font-size:13px}.tabs{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.tab{border:1px solid var(--border);background:var(--card-bg);cursor:pointer;border-radius:999px;padding:6px 14px;font-size:13px}.tab.active{background:var(--navy);color:#fff;border-color:var(--navy)}.chip-row{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--border);background:var(--card-bg);cursor:pointer;border-radius:999px;padding:4px 10px;font-size:13px}.chip.active{background:var(--gold);border-color:var(--gold);color:var(--navy-dark)}.tag{background:var(--bg);border:1px solid var(--border);color:var(--text-muted);border-radius:999px;padding:2px 8px;font-size:11px}.tag-law{color:var(--navy);background:#1a27441a;border-color:#0000}.tag-commerce{color:#8a6d1a;background:#c9a22726;border-color:#0000}.tag-warn{color:var(--danger);background:#b3411f1f;border-color:#0000}.topic-tags{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.topic-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.topic-card{color:inherit;text-decoration:none;transition:transform .1s;display:block}.topic-card:hover{border-color:var(--gold);transform:translateY(-2px)}.step-progress{gap:4px;margin:0 0 20px;padding:0;list-style:none;display:flex;overflow-x:auto}.step-dot{text-align:center;opacity:.5;flex-direction:column;flex:1;align-items:center;gap:4px;min-width:72px;display:flex}.step-dot.clickable{cursor:pointer}.step-dot.done,.step-dot.active{opacity:1}.step-num{background:var(--border);border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:13px;font-weight:700;display:flex}.step-dot.active .step-num{background:var(--gold);color:var(--navy-dark)}.step-dot.done .step-num{background:var(--navy);color:#fff}.step-name{color:var(--text-muted);font-size:11px}.step-body{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:20px}.timer-row{align-items:center;gap:12px;margin-bottom:12px;display:flex}.timer{font-variant-numeric:tabular-nums;color:var(--navy);font-size:24px;font-weight:700}.categorize-list{margin:0 0 12px;padding:0;list-style:none}.categorize-item{border-bottom:1px solid var(--border);padding:10px 0}.categorize-text{margin-bottom:6px;display:block}.two-col{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:12px;display:grid}@media (width<=600px){.two-col{grid-template-columns:1fr}}.prioritize-columns{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:12px;display:grid}@media (width<=600px){.prioritize-columns{grid-template-columns:1fr}}.pick-list,.ranked-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.pick-list li{align-items:center;gap:8px;font-size:14px;display:flex}.ranked-list li{background:var(--bg);border-radius:8px;align-items:center;gap:8px;padding:6px 10px;display:flex}.rank-num{color:var(--gold);width:18px;font-weight:700}.rank-text{flex:1;font-size:14px}.rank-controls{gap:4px;display:flex}.rank-controls button{border:1px solid var(--border);background:var(--card-bg);cursor:pointer;border-radius:4px;width:22px;height:22px}.ask-ai{margin-top:8px}.ai-question{background:#c9a2271f;border-radius:8px;margin-top:8px;padding:10px 12px;font-size:14px}.preview{background:var(--bg)}.preview-text{white-space:pre-wrap;font-size:14px}.flagged-words ul{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.flagged-words li{align-items:center;gap:8px;display:flex}.rewrite-input{flex:1}.voice-stub{background:var(--bg);margin-top:12px}.event-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.event-list li{border-bottom:1px solid var(--border);justify-content:space-between;padding-bottom:8px;font-size:14px;display:flex}.event-type{font-weight:600}.scale-row{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.scale-button{border:1px solid var(--border);background:var(--card-bg);cursor:pointer;border-radius:10px;flex-direction:column;flex:1;align-items:center;gap:4px;min-width:90px;padding:12px 8px;display:flex}.scale-button.active{border-color:var(--gold);background:#c9a2271f}.scale-num{color:var(--navy);font-size:20px;font-weight:700}.scale-num.small{width:22px;font-size:14px}.scale-label{text-align:center;color:var(--text-muted);font-size:11px}.identity-history{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.identity-history li{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding-bottom:8px;font-size:13px;display:flex}.question-card{border-left:4px solid var(--gold);background:#c9a22714;padding:14px 18px}.question-text{color:var(--navy);margin:4px 0 0;font-size:18px;font-weight:700}@media (prefers-color-scheme:dark){.question-text{color:var(--gold-light)}}.question-box{border-left:4px solid var(--gold);background:#c9a22714;border-radius:8px;margin-bottom:14px;padding:12px 16px}.question-box .question-text{margin-bottom:6px}.reasons-ref{background:var(--bg);border-radius:8px;margin-bottom:14px;padding:10px 14px;font-size:14px}.reasons-ref ol{margin:6px 0 0;padding-left:20px}.dictation-hint{background:var(--bg);color:var(--text-muted);border-radius:8px;margin:0 0 10px;padding:6px 10px;font-size:13px}.journey-card{color:#fff;background:linear-gradient(160deg,#101a2e 0%,#1a2744 100%);border:none;padding:20px 20px 22px}.journey-card h2,.journey-card h3{color:#fff}.journey-kicker{letter-spacing:.18em;color:var(--gold-light);margin:0 0 2px;font-size:11px;font-weight:700}.journey-sub{color:#ffffffb8;margin:2px 0 12px;font-size:13px}.arrival-banner{background:#e6c66729;border:1px solid #e6c66780;border-radius:10px;flex-direction:column;gap:2px;margin-bottom:10px;padding:10px 14px;font-size:14px;animation:.6s ease-out both arrival-in;display:flex}.arrival-banner strong{color:var(--gold-light);font-size:16px}@keyframes arrival-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.journey-map{background:#ffffff08;border-radius:10px;width:100%;height:auto;display:block}.land-dots{fill:none;stroke:#a0bceb52;stroke-width:3.1px;stroke-linecap:round}.route-future{fill:none;stroke:#ffffff61;stroke-width:1.3px;stroke-dasharray:2.5 5}.route-prev{fill:none;stroke:#e6c66759;stroke-width:1.6px}.route-done{fill:none;stroke:var(--gold-light);stroke-width:2.2px;stroke-linecap:round;filter:drop-shadow(0 0 3px #e6c667cc)}.pin{fill:#101a2e;stroke:#fff9;stroke-width:1.4px}.pin-reached{fill:var(--gold-light);stroke:#fff}.pin-pulse{fill:none;stroke:var(--gold-light);stroke-width:1.4px;transform-box:fill-box;transform-origin:50%;animation:1.8s ease-out infinite pin-pulse}@keyframes pin-pulse{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(3.4)}}.map-label{fill:#fff;paint-order:stroke;stroke:#101a2e;stroke-width:3.5px;stroke-linejoin:round;font-size:13px;font-weight:700}.plane{fill:#fff;stroke:var(--gold-light);stroke-width:.8px;filter:drop-shadow(0 0 4px #ffffffb3)}.boarding-pass{color:#1a2744;background:#f6f1e4;border-radius:12px;margin-top:14px;display:flex;overflow:hidden}.bp-main{flex:1;padding:14px 16px}.bp-route{justify-content:space-between;align-items:center;gap:8px;display:flex}.bp-route>div{flex-direction:column;display:flex}.bp-label{letter-spacing:.16em;color:#8a7a4a;font-size:9px;font-weight:700}.bp-city{font-size:22px;font-weight:800;line-height:1.15}.bp-en{letter-spacing:.14em;color:#5b6477;font-size:10px}.bp-plane{color:var(--gold);font-size:20px}.bp-bar{background:#1a274424;border-radius:999px;height:6px;margin:12px 0 8px;overflow:hidden}.bp-bar-fill{background:linear-gradient(90deg, var(--gold), var(--gold-light));border-radius:999px;height:100%}.bp-note{margin:0;font-size:13px;font-weight:600}.bp-stub{background:#c9a22724;border-left:2px dashed #1a27444d;flex-direction:column;justify-content:center;gap:1px;min-width:96px;padding:12px 14px;display:flex}.bp-name{letter-spacing:.08em;margin-bottom:6px;font-size:13px;font-weight:800}.journey-stats{text-align:center;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px;display:grid}.journey-stats>div{background:#ffffff0f;border-radius:10px;flex-direction:column;padding:8px 4px;display:flex}.journey-stat-value{color:var(--gold-light);font-variant-numeric:tabular-nums;font-size:20px;font-weight:800}.journey-stat-label{color:#ffffffb3;font-size:10px}.passport-title{letter-spacing:.2em;margin:18px 0 8px;color:#ffffffb3!important}.passport{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.stamp{color:#ffffff80;border:2px solid #fff3;border-radius:10px;flex-direction:column;gap:1px;padding:9px 11px;display:flex}.stamp-name{font-size:15px;font-weight:800}.stamp-en{letter-spacing:.16em;font-size:9px}.stamp-text{margin-top:4px;font-size:11px;line-height:1.45}.stamp.visited{border:2px double var(--gold-light);color:#fff;background:#e6c6671a}.stamp.visited .stamp-name{color:var(--gold-light)}.stamp.next{border-style:dashed;border-color:var(--gold-light);color:#ffffffd9}@media (width<=600px){.bp-city{font-size:18px}.bp-stub{min-width:80px}}@media (prefers-reduced-motion:reduce){.pin-pulse,.arrival-banner{animation:none}}.nav a{white-space:nowrap}.header-right .button.ghost{color:#fff;white-space:nowrap;border-color:#ffffff80}@media (width<=600px){.app-header{flex-wrap:wrap;gap:6px 12px;padding:10px 14px}.brand{font-size:15px}.nav{flex-basis:100%;order:3;gap:22px}.header-right{margin-left:auto}.boarding-pass{flex-direction:column}.bp-city{white-space:nowrap;font-size:19px}.bp-stub{border-top:2px dashed #1a27444d;border-left:none;flex-flow:wrap;align-items:baseline;gap:2px 12px;padding:10px 16px}.bp-name{margin-bottom:0}}.news-date{color:var(--text-muted);margin:20px 0 8px;font-size:16px}.news-card.featured{border-left:4px solid var(--gold)}.news-text{margin:4px 0 8px;font-size:16px;line-height:1.7}.news-links{flex-direction:column;gap:2px;margin-bottom:10px;display:flex}.news-links a{color:var(--navy)}@media (prefers-color-scheme:dark){.news-links a{color:var(--gold-light)}}.news-attribution{margin-top:24px}.home-news-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.chat{flex-direction:column;gap:10px;margin:8px 0 14px;display:flex}.bubble{white-space:pre-wrap;border-radius:14px;max-width:86%;padding:10px 14px;font-size:15px;line-height:1.7}.bubble.assistant{background:var(--card-bg);border:1px solid var(--border);border-bottom-left-radius:4px;align-self:flex-start}.bubble.user{background:var(--navy);color:#fff;border-bottom-right-radius:4px;align-self:flex-end;margin-left:auto}.bubble-tag{color:var(--text-muted);margin-left:8px;font-size:10px;display:inline-block}.chat-note{color:var(--text-muted);margin:2px 0 0 4px;font-size:12px}.chat-input{margin-bottom:0}.chat-input-row{justify-content:space-between;align-items:center;margin-top:8px;display:flex}.notify p{margin:0 0 8px}.notify-compact{border-top:1px solid var(--border);margin-top:10px;padding-top:10px}
