@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, 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;--spacing:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--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,ui-sans-serif, system-ui, 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;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{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{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}input:where([type=text]),input:where(:not([type])),input:where([type=email]),input:where([type=url]),input:where([type=password]),input:where([type=number]),input:where([type=date]),input:where([type=datetime-local]),input:where([type=month]),input:where([type=search]),input:where([type=tel]),input:where([type=time]),input:where([type=week]),select:where([multiple]),textarea,select{appearance:none;--tw-shadow:0 0 #0000;background-color:#fff;border-width:1px;border-color:#6a7282;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem}:is(input:where([type=text]),input:where(:not([type])),input:where([type=email]),input:where([type=url]),input:where([type=password]),input:where([type=number]),input:where([type=date]),input:where([type=datetime-local]),input:where([type=month]),input:where([type=search]),input:where([type=tel]),input:where([type=time]),input:where([type=week]),select:where([multiple]),textarea,select):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#155dfc;outline:2px solid #0000}input::placeholder,textarea::placeholder{color:#6a7282;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em}::-webkit-date-and-time-value{text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-year-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-month-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-day-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-hour-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-minute-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-second-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-millisecond-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}select{-webkit-print-color-adjust:exact;print-color-adjust:exact;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem}select:where([multiple]),select:where([size]:not([size="1"])){background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;-webkit-print-color-adjust:unset;print-color-adjust:unset;padding-right:.75rem}input:where([type=checkbox]),input:where([type=radio]){appearance:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;vertical-align:middle;-webkit-user-select:none;user-select:none;color:#155dfc;--tw-shadow:0 0 #0000;background-color:#fff;background-origin:border-box;border-width:1px;border-color:#6a7282;flex-shrink:0;width:1rem;height:1rem;padding:0;display:inline-block}input:where([type=checkbox]){border-radius:0}input:where([type=radio]){border-radius:100%}input:where([type=checkbox]):focus,input:where([type=radio]):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000}input:where([type=checkbox]):checked,input:where([type=radio]):checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}input:where([type=checkbox]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}@media(forced-colors:active){input:where([type=checkbox]):checked{appearance:auto}}input:where([type=radio]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}@media(forced-colors:active){input:where([type=radio]):checked{appearance:auto}}input:where([type=checkbox]):checked:hover,input:where([type=checkbox]):checked:focus,input:where([type=radio]):checked:hover,input:where([type=radio]):checked:focus{background-color:currentColor;border-color:#0000}input:where([type=checkbox]):indeterminate{background-color:currentColor;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}@media(forced-colors:active){input:where([type=checkbox]):indeterminate{appearance:auto}}input:where([type=checkbox]):indeterminate:hover,input:where([type=checkbox]):indeterminate:focus{background-color:currentColor;border-color:#0000}input:where([type=file]){background:unset;border-color:inherit;font-size:unset;line-height:inherit;border-width:0;border-radius:0;padding:0}input:where([type=file]):focus{outline:1px solid buttontext;outline:1px auto -webkit-focus-ring-color}}@layer components;@layer utilities{.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.start{inset-inline-start:var(--spacing)}.block{display:block}.contents{display:contents}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}:root{--bg:#f4f8f6;--bg-strong:#e5f0eb;--surface:#fffc;--surface-strong:#fff;--border:#123e351f;--text:#163730;--muted:#57756c;--primary:#0f7a65;--primary-strong:#0a5b4b;--accent:#1f9d8a;--accent-soft:#d9f3ec;--warm:#ffd88f;--shadow:0 24px 80px #0f40361f;--shadow-soft:0 14px 34px #0f403614;--page-width:min(1180px, calc(100vw - 2rem) );--radius-xl:32px;--radius-lg:24px;--radius-md:18px;color:var(--text);background:radial-gradient(circle at top left,#1f9d8a29,transparent 28%),radial-gradient(circle at top right,#ffd88f52,transparent 24%),linear-gradient(180deg,#f7fbf9 0%,var(--bg) 100%);font-family:Noto Sans JP,Yu Gothic,Hiragino Kaku Gothic ProN,system-ui,sans-serif}html{scroll-behavior:smooth}body{min-height:100vh;color:var(--text);background:0 0;margin:0}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.card{background:var(--surface);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.card>:first-child{margin-top:0}.card>:last-child{margin-bottom:0}.eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--primary);margin:0 0 .75rem;font-size:.78rem;font-weight:700}.button{border-radius:999px;justify-content:center;align-items:center;gap:.5rem;padding:.95rem 1.4rem;font-weight:700;transition:transform .2s,background-color .2s,border-color .2s;display:inline-flex}.button:hover{transform:translateY(-1px)}.button:disabled{opacity:.45;cursor:not-allowed;transform:none}.button-primary{background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%);color:#fff}.button-secondary{border:1px solid var(--border);color:var(--text);background:#ffffffc7}.text-link{color:var(--primary);font-weight:700}.brand{align-items:center;gap:.9rem;display:inline-flex}.brand strong,.brand small{display:block}.brand strong{font-size:1rem}.brand small{color:var(--muted);margin-top:.2rem}.brand-mark{background:linear-gradient(135deg,var(--primary) 0%,#3fc3ab 100%);color:#fff;letter-spacing:.08em;border-radius:18px;justify-content:center;align-items:center;width:2.7rem;height:2.7rem;font-weight:800;display:inline-flex}.landing-page,.auth-page,.app-main{width:var(--page-width);margin:0 auto}.landing-page{padding:2rem 0 4rem}.landing-hero{margin-bottom:1.5rem;padding:2.3rem;display:block}.hero-copy h1,.page-hero h1,.auth-heading h1{letter-spacing:-.04em;margin:0;font-size:clamp(2.2rem,5vw,4.6rem);line-height:1.04}.hero-text,.page-hero p,.auth-heading p,.unit-card p,.activity-row p,.detail-main p,.accent-card p,.hero-panel p{color:var(--muted);line-height:1.75}.hero-actions{flex-wrap:wrap;gap:.8rem;margin-top:2rem;display:flex}.hero-panel-header,.progress-label,.section-heading,.unit-card-header,.activity-row,.topbar,.topnav,.user-pill,.session-actions,.session-summary,.user-area{justify-content:space-between;align-items:center;gap:1rem;display:flex}.chip-row,.feature-list,.unit-tags{flex-wrap:wrap;gap:.7rem;margin:1.2rem 0 0;padding:0;list-style:none;display:flex}.chip-row li,.unit-tags span{background:#ffffff24;border-radius:999px;padding:.45rem .8rem;font-size:.92rem}.metrics-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.metric-card,.accent-card,.auth-card{padding:1.4rem}.accent-card{background:linear-gradient(#ffffffeb,#e7f7f1db),radial-gradient(circle at 100% 0,#1f9d8a1f,#0000 30%)}.metric-card p,.metric-card span{color:var(--muted);margin:0}.metric-card strong{letter-spacing:-.04em;margin:.65rem 0 .35rem;font-size:clamp(2rem,4vw,2.7rem);display:block}.landing-grid,.dashboard-grid,.detail-grid{grid-template-columns:1.2fr .8fr;gap:1.2rem;margin-top:1.5rem;display:grid}.section-heading{margin-bottom:1rem}.section-heading h2,.unit-card h2,.detail-section h2,.accent-card h2{letter-spacing:-.03em;margin:0;font-size:1.5rem}.activity-list,.unit-stack,.chat-list{gap:.9rem;display:grid}.recent-history-list{gap:1rem;display:grid}.journey-card,.tips-card{padding:1.5rem}.journey-list,.tips-list{gap:1rem;display:grid}.ranking-list,.score-grid{gap:.9rem;display:grid}.ranking-row,.brief-card{border-radius:var(--radius-md);background:#ffffffb8;border:1px solid #123e3514;padding:1rem 1.1rem}.ranking-row{justify-content:space-between;align-items:center;gap:1rem;display:flex}.ranking-row strong,.brief-card strong,.score-box strong{display:block}.ranking-row p,.brief-card p,.score-box span{color:var(--muted);margin:.35rem 0 0}.ranking-meta{text-align:right}.feature-list-block{display:grid}.form-label{margin-bottom:.6rem;font-weight:700;display:inline-block}.result-card,.ranking-card{margin-top:1.2rem;padding:1.4rem}.brief-card{margin-bottom:1rem}.score-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:1rem}.score-box{border-radius:var(--radius-md);background:var(--accent-soft);padding:1rem}.score-box strong{letter-spacing:-.04em;font-size:1.8rem}.activity-row,.unit-row{border-top:1px solid #123e3514;padding:1rem 0}.recent-history-card{border-radius:var(--radius-md);box-shadow:var(--shadow-soft);background:linear-gradient(#ffffffeb,#eff8f4d6),radial-gradient(circle at 100% 0,#1f9d8a1a,#0000 30%);border:1px solid #123e3514;gap:1rem;padding:1.2rem;transition:transform .2s,border-color .2s,box-shadow .2s;display:grid}.recent-history-card:hover{border-color:#0f7a653d;transform:translateY(-2px);box-shadow:0 18px 42px #1043381f}.journey-step,.tip-item{border-radius:var(--radius-md);background:#ffffffb8;border:1px solid #123e3514;gap:.85rem;padding:1rem 1.05rem;display:grid}.journey-step{grid-template-columns:auto 1fr;align-items:start}.journey-index{background:linear-gradient(135deg,var(--primary) 0%,#45c7af 100%);color:#fff;letter-spacing:.08em;border-radius:16px;justify-content:center;align-items:center;width:3rem;height:3rem;font-size:.95rem;font-weight:800;display:inline-flex}.journey-copy,.tip-item{align-content:start}.journey-copy strong,.tip-item strong{font-size:1.05rem;display:block}.journey-copy p,.tip-item p{color:var(--muted);margin:0;line-height:1.7}.tips-list{margin-top:1rem}.tip-item{background:linear-gradient(#ffffffe0,#e8f6f0d1),radial-gradient(circle at 100% 0,#1f9d8a1a,#0000 36%)}.recent-history-top,.recent-history-meta{justify-content:space-between;align-items:center;gap:1rem;display:flex}.recent-history-top strong,.recent-history-score strong{display:block}.recent-history-top strong{font-size:1.15rem}.recent-history-score{text-align:right;background:#ffffffc7;border:1px solid #123e3514;border-radius:16px;min-width:6.5rem;padding:.8rem .95rem}.recent-history-score span,.recent-history-body p,.recent-history-meta time{color:var(--muted)}.recent-history-score strong{letter-spacing:-.03em;margin-top:.25rem;font-size:1.4rem}.tone-good{background:#dbf6eee6}.tone-mid{background:#fff4d6e6}.tone-low{background:#ffe8e3eb}.tone-neutral{background:#f2f6f5eb}.recent-history-body p{margin:0;line-height:1.7}.recent-history-meta{border-top:1px solid #123e3514;padding-top:.9rem;font-size:.92rem}.recent-history-meta span{color:var(--primary);font-weight:700}.history-status{letter-spacing:.06em;border-radius:999px;align-items:center;width:fit-content;margin:0 0 .55rem;padding:.35rem .7rem;font-size:.78rem;font-weight:800;display:inline-flex}.status-ready{color:var(--primary-strong);background:#0f7a651f}.status-pending{color:#815b15;background:#ffd88f57}.status-paused{color:#48625b;background:#73888324}.activity-row:first-child,.unit-row:first-child{border-top:none;padding-top:0}.activity-row strong,.unit-row strong{margin-bottom:.3rem;display:block}.activity-row time,.meta-text{color:var(--muted);white-space:nowrap;font-size:.92rem}.app-shell{padding:1.2rem 0 4rem}.topbar{z-index:20;width:var(--page-width);border:1px solid var(--border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fafdfcd1;border-radius:999px;margin:0 auto 1.2rem;padding:.95rem 1.2rem;position:sticky;top:.75rem;box-shadow:0 10px 40px #1043381a}.topnav{flex-wrap:wrap}.topnav a{color:var(--muted);border-radius:999px;padding:.7rem 1rem;font-weight:700}.topnav a.active{background:var(--accent-soft);color:var(--primary-strong)}.user-pill{background:#ffffffd6;border:1px solid #123e3514;border-radius:999px;padding:.55rem .8rem}.user-area{flex-wrap:wrap;justify-content:flex-end}.topbar-button{padding:.8rem 1rem}.user-pill small{color:var(--muted);display:block}.page-hero{margin-bottom:1.8rem;padding:.6rem 0 1rem}.dashboard-layout,.session-layout{gap:1.4rem;display:grid}.resume-card,.dashboard-side-card,.dashboard-history-card{padding:1.5rem}.resume-copy{gap:.25rem;display:grid}.dashboard-side-card .feature-list li{flex-wrap:wrap;align-items:baseline;gap:.35rem;display:flex}.dashboard-side-card .feature-list strong{font-size:1rem}.unit-row{grid-template-columns:1fr auto;align-items:center;gap:1rem;display:grid}.unit-meta{color:var(--primary);flex-wrap:wrap;gap:.5rem;margin-bottom:.45rem;font-size:.92rem;font-weight:700;display:flex}.progress-ring{background:conic-gradient(var(--accent) 0deg 260deg,#0f7a6524 260deg 360deg),#fff;width:4.75rem;height:4.75rem;color:var(--primary-strong);border-radius:50%;justify-content:center;align-items:center;font-weight:800;display:inline-flex}.units-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem;display:grid}.unit-map-layout{grid-template-columns:minmax(0,1.45fr) minmax(320px,.7fr);align-items:start;gap:1.2rem;display:grid}.map-card,.spotlight-card,.route-summary-card{padding:1.4rem}.map-card{background:linear-gradient(#ffffffe6,#e5f3edeb),radial-gradient(circle at 100% 0,#1f9d8a24,#0000 34%)}.map-legend{color:var(--muted);flex-wrap:wrap;justify-content:flex-end;gap:.85rem;font-size:.88rem;display:flex}.map-legend span{align-items:center;gap:.45rem;display:inline-flex}.legend-dot{border-radius:999px;width:.8rem;height:.8rem;display:inline-flex}.legend-available{background:linear-gradient(135deg,#fc6,#ff8f5a)}.legend-cleared{background:linear-gradient(135deg,var(--primary) 0%,#44c2aa 100%)}.legend-locked{background:linear-gradient(135deg,#b7c5c0,#8ca09b)}.japan-map{background:radial-gradient(circle at 20% 18%,#ffffffb3,#0000 18%),radial-gradient(circle at 82% 80%,#ffffff8c,#0000 16%),linear-gradient(#d5f0e9a6,#e9f5f1f0);border:1px solid #123e351a;border-radius:28px;min-height:940px;margin-top:1.4rem;position:relative;overflow:hidden}.japan-map:before{content:"";opacity:.4;background-image:linear-gradient(#ffffff73 1px,#0000 1px),linear-gradient(90deg,#ffffff73 1px,#0000 1px);background-size:48px 48px;position:absolute;inset:0}.japan-map-svg,.map-node-layer{position:absolute;inset:0}.japan-map-svg{z-index:0;width:100%;height:100%}.map-node-layer{z-index:1}.map-region-shape{fill:#d5f0e9eb;stroke:#0f7a653d;stroke-width:1.25px;filter:drop-shadow(0 12px 22px #10433814)}.map-region-label{text-anchor:middle;fill:#1637306b;pointer-events:none;font-size:12px;font-weight:700}.map-pin{z-index:1;filter:drop-shadow(0 10px 18px #10433838);background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;width:22px;height:30px;padding:0;transition:transform .2s,filter .2s,opacity .2s;display:inline-flex;position:absolute;transform:translate(-50%,-100%)}.map-pin:hover{transform:translate(-50%,calc(-100% - 2px))scale(1.05)}.map-pin-dot{background:var(--surface-strong);border:2px solid #ffffffeb;border-radius:999px;width:18px;height:18px;box-shadow:0 0 0 1px #0f7a6524}.map-pin-stem{border-left:7px solid #0000;border-right:7px solid #0000;border-top:12px solid var(--surface-strong);filter:drop-shadow(0 1px #0f7a651f);width:0;height:0;margin-top:-2px}.map-pin.status-available .map-pin-dot{background:linear-gradient(135deg,#fc6,#ff9759)}.map-pin.status-available .map-pin-stem{border-top-color:#ffb16a}.map-pin.status-cleared .map-pin-dot{background:linear-gradient(135deg,var(--primary) 0%,#44c2aa 100%)}.map-pin.status-cleared .map-pin-stem{border-top-color:#2aa892}.map-pin.status-locked{opacity:.88}.map-pin.status-locked .map-pin-dot{background:linear-gradient(135deg,#c2ceca,#99ada7)}.map-pin.status-locked .map-pin-stem{border-top-color:#aebcb8}.map-pin.is-selected{filter:drop-shadow(0 16px 26px #10433847);transform:translate(-50%,calc(-100% - 2px))scale(1.18)}.map-pin.is-selected .map-pin-dot{box-shadow:0 0 0 1px #0f7a652e,0 0 0 8px #ffffff8c}.unit-spotlight{gap:1.2rem;display:grid}.spotlight-card h2{margin-bottom:.8rem}.spotlight-stats,.route-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin:1.2rem 0 1.4rem;display:grid}.spotlight-stats div,.route-summary-grid .brief-card{background:#ffffffb8;border:1px solid #123e3514;border-radius:18px;padding:.95rem}.spotlight-stats span,.route-summary-grid span{color:var(--muted);font-size:.84rem;display:block}.spotlight-stats strong,.route-summary-grid strong{margin-top:.35rem;font-size:1.22rem;display:block}.is-disabled-link{pointer-events:none}.compact-step{padding:.9rem 1rem}.compact-step .journey-index{width:2.5rem;height:2.5rem;font-size:.85rem}.compact-step.status-locked{opacity:.72}.compact-step.status-available{background:#fff7e6cc;border-color:#ff996647}.compact-step.status-cleared{background:#e4f7f1e0;border-color:#0f7a652e}.unit-card{box-shadow:var(--shadow-soft);background:linear-gradient(#ffffffe6,#f6fbf9d1),radial-gradient(circle at 100% 0,#1f9d8a14,#0000 30%);border:1px solid #123e3514;gap:1rem;padding:1.35rem;transition:transform .2s,border-color .2s,box-shadow .2s;display:grid}.unit-card:hover,.unit-row:hover{transform:translateY(-2px)}.unit-card:hover{border-color:#0f7a6547;box-shadow:0 18px 42px #1043381f}.status-badge{border-radius:999px;align-items:center;height:fit-content;padding:.45rem .75rem;font-size:.85rem;font-weight:800;display:inline-flex}.status-recommended{color:var(--primary-strong);background:#0f7a6524}.status-review{color:#815b15;background:#ffd88f5c}.status-mastered{color:#255ba7;background:#5097ff1f}.progress-block{gap:.65rem;display:grid}.progress-bar{background:#0f7a651f;border-radius:999px;height:.75rem;overflow:hidden}.progress-bar div{border-radius:inherit;background:linear-gradient(135deg,var(--primary) 0%,#45c7af 100%);height:100%}.loading-block{border-radius:var(--radius-md);background:#0f7a6514;border:1px solid #0f7a651f;gap:.85rem;margin-bottom:1rem;padding:1rem;display:grid}.loading-meta{gap:.2rem;display:grid}.loading-meta strong{font-size:.98rem}.loading-meta span{color:var(--muted);font-size:.92rem}.loading-bar{background:#0f7a6524;border-radius:999px;height:.8rem;position:relative;overflow:hidden}.loading-bar-fill{border-radius:inherit;background:linear-gradient(90deg,var(--primary) 0%,#45c7af 55%,#7fe6d0 100%);width:35%;animation:1.45s ease-in-out infinite loading-slide;position:absolute;inset:0 auto 0 -35%;box-shadow:0 0 18px #1f9d8a59}@keyframes loading-slide{0%{transform:translate(0)}to{transform:translate(390%)}}.detail-main,.session-card{padding:1.5rem}.detail-main,.session-card,.result-card,.ranking-card{background:linear-gradient(#ffffffeb,#f4faf7d1),radial-gradient(circle at 100% 0,#1f9d8a14,#0000 32%)}.detail-sidebar{align-self:start;display:grid}.detail-section{margin-top:1.5rem}.feature-list{gap:.8rem;margin-top:1rem;display:grid}.feature-list li{color:var(--text);padding-left:1.2rem;position:relative}.feature-list li:before{content:"";background:var(--accent);border-radius:999px;width:.45rem;height:.45rem;position:absolute;top:.72rem;left:0}.auth-page{place-items:center;min-height:100vh;padding:1.5rem 0;display:grid}.auth-card{width:min(560px,100%);padding:2rem}.auth-choice-card{width:min(760px,100%)}.auth-brand{margin-bottom:1.8rem}.role-switch{background:#0f7a6514;border-radius:999px;gap:.5rem;margin-bottom:1.5rem;padding:.35rem;display:inline-flex}.role-switch a{color:var(--muted);border-radius:999px;padding:.75rem 1rem;font-weight:700}.role-switch a.active{color:var(--primary-strong);background:#fff;box-shadow:0 8px 24px #0f403614}.auth-heading{margin-bottom:1.5rem}.role-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.role-choice-card-link{gap:.75rem;padding:1.4rem;transition:transform .2s,border-color .2s;display:grid}.role-choice-card-link:hover{border-color:#0f7a6547;transform:translateY(-2px)}.role-choice-card-link h2,.role-choice-card-link p{margin:0}.auth-form{gap:1rem;display:grid}.auth-form label,.radio-group{gap:.55rem;display:grid}.auth-form span,.group-label{font-weight:700}.auth-form input,.auth-form select,.session-form textarea{width:100%;color:var(--text);background:#fffffff0;border:1px solid #123e351f;border-radius:18px;padding:.95rem 1rem}.radio-group{background:#ffffff80;border:1px solid #123e351f;border-radius:20px;margin:0;padding:1rem}.radio-group label{align-items:center;gap:.6rem;font-weight:500;display:flex}.radio-group input[type=radio]{border-radius:999px;flex:none;width:1.1rem;height:1.1rem;margin:0;padding:0}.auth-footer{color:var(--muted);justify-content:space-between;gap:1rem;margin-top:1.2rem;display:flex}.field-error{color:#c34f3a;font-size:.88rem}.form-error{color:#c34f3a;margin:0;line-height:1.6}.helper-text{color:var(--muted);margin:0;line-height:1.6}.success-panel,.credential-card{gap:1rem;display:grid}.success-text{color:var(--primary-strong);margin:0;line-height:1.6}.credential-card{background:#fff9;border:1px solid #123e351f;border-radius:20px;padding:1rem}.credential-card strong,.credential-card p{margin:0}.state-card{background:linear-gradient(#ffffffeb,#f2f9f6d1),radial-gradient(circle at 100% 0,#1f9d8a14,#0000 30%);padding:1.4rem}.session-loading-card{background:linear-gradient(#ffffffe6,#e9f6f1d1),radial-gradient(circle at 100% 0,#1f9d8a1f,#0000 30%);gap:1rem;padding:1.6rem;display:grid}.session-loading-card h2,.session-loading-card p{margin:0}.session-loading-card h2{letter-spacing:-.03em;font-size:1.6rem}.session-loading-card>p:not(.eyebrow){color:var(--muted);line-height:1.7}.session-card{gap:1rem;display:grid}.session-summary{color:var(--muted);flex-wrap:wrap;font-size:.95rem}.chat-bubble{border-radius:24px;max-width:min(760px,92%);padding:1rem 1.1rem}.chat-bubble span{margin-bottom:.4rem;font-size:.85rem;font-weight:800;display:block}.chat-bubble p{margin:0;line-height:1.8}.chat-bubble :global(.markdown-content){line-height:1.8}.chat-bubble.ai{background:#d9f3ece6}.chat-bubble.student{background:#ffd88f6b;margin-left:auto}.session-form{gap:1rem;display:grid}.session-form textarea{resize:vertical;min-height:150px}@media(max-width:900px){.landing-hero,.landing-grid,.dashboard-grid,.detail-grid,.metrics-grid,.units-grid,.unit-map-layout{grid-template-columns:1fr}.topbar{border-radius:28px;justify-content:stretch;display:grid}.page-hero{margin-bottom:1.4rem}.topnav,.auth-footer,.section-heading,.activity-row,.unit-card-header,.session-actions,.recent-history-top,.recent-history-meta{flex-direction:column;align-items:flex-start}.journey-step{grid-template-columns:1fr}.japan-map{min-height:780px}.map-pin.is-selected{transform:translate(-50%,calc(-100% - 2px))scale(1.12)}}@media(max-width:640px){.landing-page,.auth-page,.app-main,.topbar{width:min(100vw - 1rem,100%)}.hero-copy h1,.page-hero h1,.auth-heading h1{font-size:2.2rem}.landing-hero,.metric-card,.auth-card,.detail-main,.session-card,.unit-card,.result-card,.ranking-card,.session-loading-card,.map-card,.spotlight-card,.route-summary-card{padding:1.2rem}.score-grid{grid-template-columns:1fr}.map-legend{justify-content:flex-start}.spotlight-stats,.route-summary-grid{grid-template-columns:1fr}.japan-map{min-height:680px}}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}
