/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@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;--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;-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{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}.start{inset-inline-start:var(--spacing)}.table{display:table}}:root{--ink-950:#081017;--ink-900:#0d1821;--ink-850:#14212a;--ink-800:#1a2b35;--ink-700:#29404b;--mist-500:#78909a;--mist-300:#aebfc2;--paper-50:#f5f0e4;--paper-100:#ebe2cf;--paper-200:#d8ccb5;--paper-700:#5e5143;--cinnabar:#bf4b3f;--cinnabar-dark:#8c332d;--amber:#d9ad68;--amber-bright:#f1ce8e;--pine:#3d6256;--success:#4e8069;--warning:#a85949;--font-display:"Songti SC", "STSong", "Noto Serif SC", Georgia, serif;--font-body:-apple-system, "SF Pro Text", "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif;--shadow-deep:0 30px 80px #00000052}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--ink-950);color:var(--ink-900);font-family:var(--font-body);text-rendering:optimizelegibility;margin:0;line-height:1.75}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit;font:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--amber-bright);outline-offset:4px}button:disabled{cursor:not-allowed}.eyebrow{color:var(--amber);letter-spacing:.22em;text-transform:uppercase;font-size:12px;font-weight:700}.seal{background:var(--cinnabar);color:#fff;font-family:var(--font-display);letter-spacing:.12em;border:1px solid #ffffff57;flex:none;justify-content:center;align-items:center;width:38px;height:38px;font-size:12px;line-height:1;display:inline-flex}.welcome{background:var(--ink-950);color:var(--paper-50);min-height:100svh;position:relative;overflow:hidden}.hero-image{object-fit:cover;object-position:center}.hero-shade{background:linear-gradient(90deg,#050c12fa 0%,#070f16e0 34%,#070f1638 64%,#070f161a 100%),linear-gradient(#0000 64%,#050b10e0 100%);position:absolute;inset:0}.welcome-topline{letter-spacing:.14em;z-index:2;border-bottom:1px solid #ebe2cf2e;justify-content:space-between;align-items:center;padding:21px 0;font-size:11px;display:flex;position:absolute;top:0;left:clamp(24px,5vw,76px);right:clamp(24px,5vw,76px)}.welcome-topline span:last-child{color:var(--amber-bright)}.hero-copy{z-index:2;flex-direction:column;gap:20px;max-width:590px;display:flex;position:absolute;top:50%;left:clamp(24px,7vw,104px);transform:translateY(-52%)}.hero-copy h1{font-family:var(--font-display);letter-spacing:-.05em;text-shadow:0 10px 38px #00000059;margin:0;font-size:clamp(56px,7.2vw,106px);font-weight:500;line-height:.98}.hero-copy h1 em{color:var(--amber-bright);font-style:normal;font-weight:600}.hero-copy>p{color:var(--mist-300);font-family:var(--font-display);letter-spacing:.08em;margin:0;font-size:clamp(18px,2vw,24px)}.hero-dialogue{align-items:flex-start;gap:15px;max-width:540px;margin-top:4px;display:flex}.hero-dialogue blockquote{color:var(--paper-100);font-family:var(--font-display);border-left:1px solid #d9ad6880;margin:0;padding:2px 0 2px 17px;font-size:15px;line-height:1.9}.hero-actions{flex-wrap:wrap;align-items:stretch;gap:12px;display:flex}.primary-action{background:var(--cinnabar);color:#fff;cursor:pointer;text-align:left;border:1px solid #fff3;flex-direction:column;justify-content:center;align-items:center;min-height:64px;padding:11px 28px;transition:background .18s,transform .18s,box-shadow .18s;display:flex;box-shadow:0 16px 36px #81251f40}.primary-action:hover{background:#ce5547;transform:translateY(-2px);box-shadow:0 20px 44px #81251f61}.primary-action span{letter-spacing:.06em;font-weight:700}.primary-action small{color:#ffffffb3;letter-spacing:.05em;font-size:11px}.primary-action.compact{width:100%;min-height:58px;padding:9px 21px}.ghost-action{color:var(--paper-50);cursor:pointer;background:#0c18205c;border:1px solid #ebe2cf61;min-height:64px;padding:0 23px;transition:background .18s,border-color .18s}.ghost-action:hover{border-color:var(--amber);background:#ebe2cf1a}.prologue-strip{z-index:2;grid-template-columns:max-content max-content minmax(260px,560px);gap:4px 18px;display:grid;position:absolute;bottom:30px;left:clamp(24px,7vw,104px)}.prologue-strip>span{color:var(--amber);letter-spacing:.18em;grid-column:1/-1;font-size:10px;font-weight:700}.prologue-strip strong{font-family:var(--font-display);border-right:1px solid #ebe2cf4d;padding-right:18px;font-size:18px}.prologue-strip p{color:#ebe2cfad;margin:0;font-size:12px;line-height:1.7}.app-shell{background:radial-gradient(circle at 80% 8%, #d9ad6817, transparent 23%), linear-gradient(145deg, var(--ink-900), var(--ink-950));color:var(--paper-50);min-height:100svh}.site-header{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:20;background:#081017e0;border-bottom:1px solid #ebe2cf1f;grid-template-columns:1fr auto auto;align-items:center;gap:30px;min-height:76px;padding:12px clamp(20px,4vw,64px);display:grid;position:sticky;top:0}.brand{color:var(--paper-50);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:12px;min-height:44px;padding:0;display:flex}.brand-mark{background:var(--cinnabar);font-family:var(--font-display);border:1px solid #ffffff57;justify-content:center;align-items:center;width:42px;height:42px;font-size:22px;display:flex}.brand>span:last-child{flex-direction:column;line-height:1.35;display:flex}.brand b{font-family:var(--font-display);letter-spacing:.06em;font-size:18px}.brand small{color:var(--mist-500);letter-spacing:.08em;font-size:9px}.site-header nav{gap:7px;display:flex}.site-header nav button{color:var(--mist-300);cursor:pointer;background:0 0;border:0;border-bottom:1px solid #0000;min-height:44px;padding:0 14px;font-size:13px}.site-header nav button:hover,.site-header nav button.active{border-color:var(--amber);color:var(--paper-50)}.header-progress{gap:5px;min-width:125px;display:grid}.header-progress span{color:var(--mist-300);text-align:right;font-size:11px}.header-progress span b{color:var(--amber-bright);font-size:15px}.header-progress i{background:#ebe2cf1f;height:3px;display:block;overflow:hidden}.header-progress em{background:var(--amber);height:100%;transition:width .3s;display:block}.stars{gap:3px;display:inline-flex}.star{color:#d9ad6852;font-size:15px;font-style:normal;line-height:1}.star.is-lit{color:var(--amber-bright);filter:drop-shadow(0 0 8px #d9ad6859)}.map-page{max-width:1500px;margin:0 auto;padding:74px clamp(20px,5vw,80px) 90px}.map-intro{max-width:730px}.map-intro h1,.notebook-heading h1,.finale-heading h1{font-family:var(--font-display);letter-spacing:-.035em;margin:12px 0 16px;font-size:clamp(42px,5vw,72px);font-weight:500;line-height:1.1}.map-intro p,.finale-heading p{color:var(--mist-300);max-width:650px;margin:0;font-size:15px}.map-layout{grid-template-columns:minmax(0,1fr) 310px;align-items:start;gap:clamp(24px,4vw,62px);margin-top:50px;display:grid}.journey-map{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:20px 0;display:grid;position:relative}.route-line{background:linear-gradient(var(--amber), #d9ad681f);opacity:.46;width:1px;position:absolute;top:20px;bottom:100px;left:50%;transform:rotate(8deg)}.map-node{color:var(--paper-50);cursor:pointer;text-align:left;background:#14212ad6;border:1px solid #ebe2cf24;grid-template-columns:52px 1fr auto;align-items:center;gap:15px;min-height:128px;padding:22px;transition:background .18s,border-color .18s,transform .18s;display:grid;position:relative}.map-node:nth-of-type(2n){transform:translateY(42px)}.map-node.is-unlocked:hover{background:#21343ff5;border-color:#d9ad689e;transform:translateY(-4px)}.map-node:nth-of-type(2n).is-unlocked:hover{transform:translateY(38px)}.map-node.is-complete{border-color:#d9ad6875}.map-node.is-complete:after{background:var(--cinnabar);content:"印";font-family:var(--font-display);text-align:center;width:22px;height:22px;font-size:10px;line-height:22px;position:absolute;top:-6px;right:-6px}.map-node.is-locked{cursor:not-allowed;filter:saturate(.2);opacity:.42}.node-number{color:var(--amber);font-family:var(--font-display);font-size:25px}.node-copy{flex-direction:column;min-width:0;display:flex}.node-copy small{color:var(--mist-500);letter-spacing:.12em;font-size:10px}.node-copy b{font-family:var(--font-display);font-size:20px;font-weight:500}.node-copy em{color:var(--mist-300);font-size:11px;font-style:normal}.lock-label{color:var(--mist-500);font-size:10px}.final-node{color:var(--paper-50);cursor:pointer;background:#50322747;border:1px solid #d9ad6857;flex-direction:column;grid-column:1/-1;align-items:center;gap:3px;min-height:116px;margin-top:50px;padding:18px;display:flex}.final-node.is-locked{cursor:not-allowed;opacity:.45}.final-node>span{color:var(--amber);letter-spacing:.2em;font-size:10px}.final-node b{font-family:var(--font-display);font-size:27px;font-weight:500}.final-node small{color:var(--mist-300)}.quest-log{background:var(--paper-50);box-shadow:var(--shadow-deep);color:var(--ink-900);padding:26px;position:sticky;top:112px}.quest-log:before,.poem-slip:before,.reward-slip:before{content:"";pointer-events:none;border:1px solid #5e514347;position:absolute;inset:7px}.quest-log{position:sticky}.quest-heading{align-items:center;gap:12px;display:flex;position:relative}.quest-heading>span:last-child{color:var(--paper-700);letter-spacing:.12em;font-size:11px}.quest-log h2{font-family:var(--font-display);margin:24px 0 10px;font-size:28px;font-weight:500;line-height:1.2;position:relative}.quest-log>p{color:var(--paper-700);margin:0;font-size:13px;position:relative}.quest-log dl{border-bottom:1px solid var(--paper-200);border-top:1px solid var(--paper-200);grid-template-columns:repeat(4,1fr);margin:22px 0;padding:15px 0;display:grid;position:relative}.quest-log dl div{text-align:center}.quest-log dt{color:var(--paper-700);font-size:10px}.quest-log dd{color:var(--cinnabar-dark);font-family:var(--font-display);margin:0;font-size:18px}.companion-whisper{border-bottom:1px solid var(--paper-200);margin-bottom:20px;padding:0 0 20px;position:relative}.companion-whisper>span,.companion-entry>span{color:var(--cinnabar);letter-spacing:.12em;text-transform:uppercase;font-size:9px;display:block}.companion-whisper b{font-family:var(--font-display);margin-top:5px;font-size:17px;font-weight:500;display:block}.companion-whisper blockquote{color:var(--ink-800);font-family:var(--font-display);margin:8px 0;font-size:14px;line-height:1.65}.companion-whisper small{color:var(--paper-700);font-size:10px}.legend-note{flex-direction:column;gap:5px;margin-top:20px;display:flex;position:relative}.legend-note b{letter-spacing:.14em;font-size:10px}.legend-note span{color:var(--paper-700);font-size:10px}.paper-shell{background:var(--paper-100);color:var(--ink-900)}.notebook-page{max-width:1320px;margin:0 auto;padding:76px clamp(20px,5vw,74px) 100px}.notebook-heading{align-items:center;gap:22px;max-width:720px;display:flex}.notebook-heading .seal{width:60px;height:60px}.notebook-heading h1{margin:4px 0 6px}.notebook-heading p{color:var(--paper-700);margin:0}.companion-record{border-bottom:1px solid var(--paper-200);border-top:1px solid var(--paper-200);background:#ffffff6b;margin-top:48px;padding:34px 0 38px}.companion-record>div:first-child{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px 28px;display:grid}.companion-record .eyebrow{grid-column:1/-1}.companion-record h2{font-family:var(--font-display);margin:0;font-size:28px;font-weight:500}.companion-record>div:first-child p{color:var(--cinnabar-dark);margin:0;font-size:12px}.companion-entry-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:24px;display:grid}.companion-entry{border:1px dashed var(--paper-300);color:var(--paper-700);opacity:.62;min-height:138px;padding:20px}.companion-entry.is-unlocked{color:var(--ink-900);opacity:1;background:#ffffffb8;border-style:solid}.companion-entry b{font-family:var(--font-display);margin-top:7px;font-size:17px;font-weight:500;display:block}.companion-entry p{color:inherit;margin:10px 0 0;font-size:12px;line-height:1.7}.notebook-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;margin-top:54px;display:grid}.notebook-column{flex-direction:column;gap:14px;display:flex}.notebook-column>h2{border-bottom:1px solid var(--paper-200);font-family:var(--font-display);margin:0 0 6px;padding-bottom:10px;font-size:22px;font-weight:500}.notebook-column>h2:not(:first-child){margin-top:28px}.formula-card{border:1px solid var(--paper-200);opacity:.66;background:#ffffff5c;grid-template-columns:36px 1fr auto;align-items:center;gap:15px;min-height:94px;padding:18px;display:grid}.formula-card.is-revealed{opacity:1;background:#ffffffb3}.formula-card>span{color:var(--cinnabar);font-family:var(--font-display);font-size:18px}.formula-card b{font-family:var(--font-display);font-size:17px}.formula-card p{color:var(--paper-700);margin:3px 0 0;font-size:12px}.poem-slip{border:1px solid var(--paper-200);background:#f8f2e6;min-height:156px;padding:28px;position:relative}.poem-slip:not(.is-revealed){filter:grayscale();opacity:.52}.poem-slip>span{color:var(--cinnabar);letter-spacing:.12em;font-size:10px;position:relative}.poem-slip h3{font-family:var(--font-display);margin:5px 0;font-size:18px;position:relative}.poem-slip blockquote{color:var(--ink-800);font-family:var(--font-display);margin:10px 0 0;font-size:16px;position:relative}.poem-slip cite{color:var(--paper-700);font-size:10px;font-style:normal;position:relative}.poem-slip p{color:var(--paper-700);margin:9px 0 0;font-size:11px;position:relative}.correction-card,.empty-note{border:1px solid var(--paper-200);background:#ffffff7a;padding:18px}.correction-card{flex-direction:column;gap:5px;display:flex}.correction-card small{color:var(--cinnabar)}.correction-card b{font-size:13px}.correction-card p,.empty-note{color:var(--paper-700);margin:0;font-size:12px}.chapter-shell{background:var(--paper-50);color:var(--ink-900)}.chapter-page{grid-template-columns:268px minmax(0,1fr);max-width:1440px;margin:0 auto;display:grid}.chapter-rail{background:var(--ink-900);color:var(--paper-50);align-self:start;min-height:calc(100svh - 76px);padding:38px 30px;position:sticky;top:76px}.back-button{color:var(--mist-300);cursor:pointer;background:0 0;border:0;min-height:44px;padding:0;font-size:11px}.back-button:hover{color:var(--amber-bright)}.chapter-index{color:var(--amber);letter-spacing:.18em;margin-top:24px;font-size:10px;display:block}.chapter-rail h1{font-family:var(--font-display);margin:7px 0 3px;font-size:30px;font-weight:500;line-height:1.2}.chapter-rail>p{color:var(--mist-300);font-family:var(--font-display);margin:0 0 12px;font-size:14px}.chapter-rail nav{border-top:1px solid #ebe2cf1f;border-bottom:1px solid #ebe2cf1f;flex-direction:column;gap:2px;margin:32px 0;padding:14px 0;display:flex}.chapter-rail nav a{color:var(--mist-300);align-items:center;gap:12px;min-height:44px;text-decoration:none;display:flex}.chapter-rail nav a:hover{color:var(--paper-50)}.chapter-rail nav a span{color:var(--amber);font-family:var(--font-display);font-size:11px}.rail-goal b{color:var(--amber);letter-spacing:.12em;font-size:10px}.rail-goal p{color:var(--mist-300);margin:7px 0 0;font-size:11px}.chapter-content{width:100%;max-width:980px;margin:0 auto;padding:54px clamp(24px,5vw,72px) 100px}.story-panel{background:var(--ink-900);box-shadow:var(--shadow-deep);color:var(--paper-50);padding:clamp(28px,5vw,54px);position:relative;overflow:hidden}.story-panel:after{content:"";opacity:.7;pointer-events:none;background:repeating-linear-gradient(90deg,#0000 0 35px,#d9ad680d 36px 37px),repeating-linear-gradient(0deg,#0000 0 35px,#d9ad680a 36px 37px);position:absolute;inset:0 0 0 55%}.story-region{z-index:1;align-items:center;gap:11px;display:flex;position:relative}.story-region span{color:var(--amber);letter-spacing:.16em;font-size:11px}.story-region small{color:var(--mist-300);border:1px solid #ebe2cf33;padding:2px 8px}.story-panel>h2{font-family:var(--font-display);z-index:1;margin:17px 0 12px;font-size:clamp(36px,5vw,58px);font-weight:500;line-height:1.12;position:relative}.story-panel>p{color:var(--mist-300);z-index:1;max-width:680px;font-size:14px;position:relative}.dialogue-card{z-index:1;background:#ebe2cf12;border-top:1px solid #d9ad684d;align-items:flex-start;gap:16px;margin-top:28px;padding:20px;display:flex;position:relative}.dialogue-card b{color:var(--amber-bright);font-family:var(--font-display)}.dialogue-card p{color:var(--paper-100);font-family:var(--font-display);margin:4px 0 0;font-size:15px}.story-choice{z-index:1;border-top:1px solid #ebe2cf1f;margin-top:24px;padding-top:20px;position:relative}.story-choice>b{color:var(--mist-300);font-size:12px}.story-choice>div{flex-wrap:wrap;gap:10px;margin-top:10px;display:flex}.story-choice button{color:var(--paper-100);cursor:pointer;background:0 0;border:1px solid #ebe2cf38;align-items:center;gap:9px;min-height:44px;padding:8px 14px;display:flex}.story-choice button:hover,.story-choice button.is-selected{border-color:var(--amber);background:#d9ad681a}.story-choice button span{color:var(--amber);border:1px solid #d9ad688c;justify-content:center;align-items:center;width:21px;height:21px;display:flex}.story-choice>p{color:var(--amber-bright);margin:12px 0 0;font-size:11px}.learning-section{border-bottom:1px solid var(--paper-200);padding:78px 0;scroll-margin-top:90px}.section-heading{align-items:flex-start;gap:18px;margin-bottom:32px;display:flex}.section-heading>span{background:var(--cinnabar);color:#fff;font-family:var(--font-display);flex:none;justify-content:center;align-items:center;width:46px;height:46px;font-size:13px;display:flex}.section-heading h2{font-family:var(--font-display);margin:0;font-size:clamp(26px,4vw,38px);font-weight:500;line-height:1.2}.section-heading p{color:var(--paper-700);margin:6px 0 0;font-size:13px}.concept-visual{background:var(--ink-900);color:var(--paper-50);grid-template-columns:minmax(300px,1.2fr) minmax(220px,.8fr);min-height:270px;margin:0 0 28px;display:grid}.visual-stage{background:radial-gradient(circle,#d9ad681c,#0000 42%),linear-gradient(#ebe2cf08,#ebe2cf08);justify-content:center;align-items:center;min-height:270px;display:flex;position:relative;overflow:hidden}.concept-visual figcaption{border-left:1px solid #d9ad6847;flex-direction:column;align-self:center;gap:10px;margin:30px 30px 30px 0;padding-left:25px;display:flex}.concept-visual figcaption strong{color:var(--amber-bright);font-family:var(--font-display);font-size:19px;font-weight:500}.concept-visual figcaption span{color:var(--mist-300);font-size:12px}.triangle-shape{clip-path:polygon(50% 4%,100% 92%,4% 92%);background:#d9ad6821;width:145px;height:126px;position:relative}.triangle-shape:after{background:var(--amber);clip-path:polygon(50% 4%,100% 92%,4% 92%,50% 4%,48% 10%,10% 88%,93% 88%,48% 10%);content:"";position:absolute;inset:0}.triangle-shape i,.triangle-shape b,.triangle-shape em{color:var(--paper-100);z-index:1;font-size:11px;font-style:normal;position:absolute}.triangle-shape i{top:0;left:48%}.triangle-shape b{bottom:0;left:0}.triangle-shape em{bottom:0;right:0}.triangle-two{transform:rotate(5deg)}.match-line{border-top:1px dashed #d9ad6880;width:38px;margin:0 18px}.symmetry-half{background:var(--cinnabar);width:92px;height:130px}.half-left{clip-path:polygon(100% 0,92% 28%,44% 12%,58% 46%,0 50%,58% 60%,36% 100%,92% 70%,100% 100%);border-radius:70% 12% 55% 20%}.half-right{clip-path:polygon(0 0,8% 28%,56% 12%,42% 46%,100% 50%,42% 60%,64% 100%,8% 70%,0 100%);border-radius:12% 70% 20% 55%}.symmetry-axis{background:var(--amber);width:1px;height:178px;margin:0 15px;position:relative}.symmetry-axis:before,.symmetry-axis:after{color:var(--amber);content:"l";font-family:var(--font-display);position:absolute;top:-7px;left:7px}.pythagorean-diagram{border-bottom:4px solid var(--amber);border-left:4px solid var(--cinnabar);width:174px;height:130px;position:relative}.pythagorean-diagram:after{background:var(--paper-100);content:"";transform-origin:0;width:220px;height:4px;position:absolute;top:-2px;left:-6px;transform:rotate(36.8deg)}.pythagorean-diagram .leg{color:var(--paper-100);font-family:var(--font-display);position:absolute}.leg-a{bottom:45%;left:-28px}.leg-b{bottom:-32px;left:48%}.leg-c{top:-35px;left:50%;transform:rotate(36deg)}.right-angle{border-left:1px solid var(--paper-100);border-top:1px solid var(--paper-100);width:14px;height:14px;bottom:0;left:0}.number-line{background:var(--paper-100);width:74%;height:1px;position:relative}.number-line:after{border-bottom:4px solid #0000;border-left:8px solid var(--paper-100);content:"";border-top:4px solid #0000;position:absolute;top:-4px;right:-8px}.tick{color:var(--paper-100);font-family:var(--font-display);text-align:center;padding-top:14px;position:absolute;top:-7px}.tick:before{background:var(--paper-100);content:"";width:1px;height:14px;position:absolute;top:0;left:50%}.tick-one{left:20%}.tick-root{color:var(--amber-bright);left:44%}.tick-root:before{background:var(--amber);width:2px;height:22px;top:-4px}.tick-two{left:75%}.coordinate-grid,.function-grid{background-image:linear-gradient(#ebe2cf14 1px,#0000 1px),linear-gradient(90deg,#ebe2cf14 1px,#0000 1px);background-size:28px 28px;width:280px;height:224px;position:relative}.axis{background:#ebe2cfb8;position:absolute}.axis-x{height:1px;top:50%;left:0;right:0}.axis-y{width:1px;top:0;bottom:0;left:50%}.point-p{background:var(--cinnabar);border-radius:50%;justify-content:center;align-items:center;width:11px;height:11px;display:flex;position:absolute;top:calc(50% - 58px);left:calc(50% + 80px)}.point-p span{color:var(--amber-bright);font-family:var(--font-display);white-space:nowrap;font-size:12px;position:absolute;left:16px}.function-line{background:var(--amber);transform-origin:0;width:286px;height:2px;position:absolute;top:129px;left:21px;transform:rotate(-36deg)}.function-point{background:var(--cinnabar);border:2px solid var(--paper-50);border-radius:50%;width:11px;height:11px;position:absolute}.point-a{top:104px;left:138px}.point-b{top:63px;left:194px}.concept-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.concept-grid article{border:1px solid var(--paper-200);background:#fff;min-height:150px;padding:20px;position:relative}.concept-grid article>span{color:#bf4b3f1a;font-family:var(--font-display);font-size:70px;line-height:1;position:absolute;top:10px;right:14px}.concept-grid h3{font-family:var(--font-display);margin:0 0 8px;font-size:18px;position:relative}.concept-grid p{color:var(--paper-700);margin:0;font-size:12px;position:relative}.worked-example{border-left:3px solid var(--cinnabar);background:#e6dcc7;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:18px;margin-top:24px;padding:25px;display:grid}.worked-example>div span{color:var(--cinnabar);letter-spacing:.12em;font-size:10px}.worked-example h3{font-family:var(--font-display);margin:7px 0 0;font-size:17px}.worked-example ol{color:var(--paper-700);margin:0;padding-left:21px;font-size:12px}.worked-example>p{border-top:1px solid var(--paper-200);grid-column:1/-1;margin:0;padding-top:14px}.knowledge-button{border:1px solid var(--cinnabar);color:var(--cinnabar-dark);cursor:pointer;background:0 0;width:100%;min-height:52px;margin-top:22px;padding:10px 20px;font-weight:700}.knowledge-button:hover,.knowledge-button.is-done{background:var(--cinnabar);color:#fff}.questions-stack{flex-direction:column;gap:16px;display:flex}.question-card{border:1px solid var(--paper-200);background:#fff;padding:clamp(20px,3vw,28px);transition:border-color .18s}.question-card.is-solved{border-color:#4e8069b8}.question-meta{justify-content:space-between;align-items:center;gap:10px;display:flex}.question-meta>span:first-child{color:var(--cinnabar);letter-spacing:.12em;font-size:10px}.solved-mark{color:var(--success);font-size:10px}.question-card h4{font-family:var(--font-display);margin:9px 0 17px;font-size:18px;font-weight:500}.option-list{gap:9px;display:grid}.option{background:var(--paper-50);border:1px solid var(--paper-200);cursor:pointer;text-align:left;align-items:center;gap:12px;min-height:48px;padding:8px 14px;display:flex}.option:hover{border-color:var(--amber)}.option.is-selected{border-color:var(--cinnabar);background:#ede2cc}.option>span{border:1px solid var(--paper-200);color:var(--paper-700);flex:none;justify-content:center;align-items:center;width:26px;height:26px;display:flex}.option.is-selected>span{background:var(--cinnabar);border-color:var(--cinnabar);color:#fff}.question-actions{justify-content:space-between;align-items:center;gap:12px;margin-top:16px;display:flex}.text-button{color:var(--paper-700);cursor:pointer;text-underline-offset:4px;background:0 0;border:0;min-height:44px;padding:0;text-decoration:underline}.text-button:hover{color:var(--cinnabar-dark)}.small-primary{background:var(--ink-900);color:#fff;cursor:pointer;border:0;min-height:44px;padding:8px 18px}.small-primary:hover:not(:disabled){background:var(--cinnabar-dark)}.small-primary:disabled{opacity:.42}.hint,.feedback{flex-direction:column;margin-top:14px;padding:13px 16px;font-size:12px;display:flex}.hint{border-left:2px solid var(--amber);color:var(--paper-700);background:#eee3cb}.feedback.correct{border-left:2px solid var(--success);color:#315a48;background:#4e80691a}.feedback.wrong{border-left:2px solid var(--warning);color:#75463b;background:#a8594917}.challenge-section{opacity:.62}.challenge-section.is-ready{opacity:1}.challenge-lock{background:var(--ink-900);color:var(--paper-50);flex-direction:column;justify-content:center;align-items:center;min-height:150px;padding:24px;display:flex}.challenge-lock span{color:var(--mist-500);letter-spacing:.12em;font-size:10px}.challenge-lock b{font-family:var(--font-display);font-size:18px;font-weight:500}.reward-section{padding-top:68px}.chapter-resolution{border-left:2px solid var(--cinnabar);margin-bottom:24px;padding:6px 0 6px 18px}.chapter-resolution span{color:var(--cinnabar);letter-spacing:.12em;font-size:10px}.chapter-resolution p{color:var(--paper-700);margin:7px 0;font-size:13px}.chapter-resolution b{font-family:var(--font-display)}.reward-slip{border:1px solid var(--paper-200);text-align:center;background:#f8f0df;padding:clamp(30px,5vw,52px);position:relative;box-shadow:0 22px 60px #3d2d1f24}.reward-slip .seal{position:absolute;top:30px;left:30px}.reward-slip>span{color:var(--cinnabar);letter-spacing:.16em;font-size:10px;position:relative}.reward-slip h2{font-family:var(--font-display);margin:10px 0;font-size:28px;font-weight:500;position:relative}.reward-slip blockquote{color:var(--ink-800);font-family:var(--font-display);margin:22px 0 4px;font-size:clamp(20px,3vw,28px);position:relative}.reward-slip cite,.reward-slip p{color:var(--paper-700);font-size:11px;font-style:normal;position:relative}.reward-slip p{max-width:570px;margin:15px auto 24px}.reward-slip .primary-action{max-width:320px;margin:0 auto;position:relative}.continue-button{background:var(--ink-900);color:var(--paper-50);cursor:pointer;font-family:var(--font-display);border:0;justify-content:space-between;align-items:center;width:100%;min-height:58px;margin-top:18px;padding:12px 22px;font-size:16px;display:flex}.continue-button:hover{background:var(--ink-800)}.continue-button span{color:var(--amber);font-size:24px}.finale-shell{background:radial-gradient(circle at 50% 28%, #d9ad6829, transparent 28%), var(--ink-950)}.finale-page{max-width:1100px;margin:0 auto;padding:74px clamp(20px,5vw,70px) 110px}.finale-heading{text-align:center;max-width:720px;margin:0 auto 50px}.finale-heading p{margin:0 auto}.finale-questions{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.final-question{background:#14212aeb;border:1px solid #ebe2cf24;padding:25px}.final-question>span{color:var(--amber);letter-spacing:.12em;font-size:10px}.final-question h2{font-family:var(--font-display);margin:9px 0 16px;font-size:18px;font-weight:500}.final-question .option{color:var(--paper-100);background:#ebe2cf0f;border-color:#ebe2cf24}.final-question .option.is-selected{border-color:var(--cinnabar);background:#bf4b3f2e}.final-question .option>span{color:var(--mist-300);border-color:#ebe2cf2e}.finale-submit{min-width:min(100%,380px);margin:30px auto 0}.finale-submit:disabled{filter:grayscale();opacity:.46}.final-feedback{color:var(--amber-bright);font-family:var(--font-display);text-align:center;margin:22px auto 0}.final-letter{background:var(--paper-50);box-shadow:var(--shadow-deep);color:var(--ink-900);text-align:center;margin-top:42px;padding:clamp(34px,6vw,70px);position:relative}.final-letter>span{color:var(--cinnabar);letter-spacing:.14em;margin-top:15px;font-size:10px;display:block}.final-letter p{font-family:var(--font-display);text-align:left;max-width:760px;margin:28px auto;font-size:clamp(17px,2.3vw,22px);line-height:2.05}.final-letter .ghost-action{border-color:var(--paper-700);color:var(--ink-900)}@media (prefers-reduced-motion:no-preference){.hero-copy>*{animation:.7s both rise-in}.hero-copy>:nth-child(2){animation-delay:80ms}.hero-copy>:nth-child(3){animation-delay:.14s}.hero-copy>:nth-child(4){animation-delay:.22s}.hero-copy>:nth-child(5){animation-delay:.3s}@keyframes rise-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}}@media (width<=1020px){.map-layout{grid-template-columns:minmax(0,1fr)}.quest-log{order:-1;position:relative;top:0}.chapter-page{grid-template-columns:220px minmax(0,1fr)}.chapter-rail{padding:28px 22px}.concept-visual{grid-template-columns:1fr}.concept-visual figcaption{border-top:1px solid #d9ad6847;border-left:0;margin:0 28px 28px;padding:22px 0 0}}@media (width<=760px){.welcome{min-height:100svh}.hero-image{object-position:64% center}.hero-shade{background:linear-gradient(#070f1629 0%,#070f16c4 42%,#050c12fa 100%),linear-gradient(90deg,#050c12bd,#0000 72%)}.welcome-topline{left:18px;right:18px}.welcome-topline span:first-child{max-width:210px}.hero-copy{gap:13px;max-width:calc(100% - 40px);top:auto;bottom:126px;left:20px;transform:none}.hero-copy h1{font-size:clamp(48px,16vw,68px)}.hero-copy>p{font-size:16px}.hero-dialogue blockquote{font-size:13px;line-height:1.75}.hero-actions{grid-template-columns:1fr;display:grid}.primary-action,.ghost-action{width:100%;min-height:54px}.prologue-strip{display:flex;bottom:18px;left:20px;right:20px}.prologue-strip strong{border:0;padding:0}.prologue-strip p{display:none}.site-header{grid-template-columns:1fr auto;gap:12px;min-height:68px;padding:10px 16px}.brand b{font-size:15px}.brand small,.header-progress{display:none}.site-header nav{gap:0}.site-header nav button{padding:0 8px;font-size:11px}.map-page,.notebook-page,.finale-page{padding:48px 18px 70px}.map-intro h1,.notebook-heading h1,.finale-heading h1{font-size:42px}.journey-map{grid-template-columns:1fr}.route-line{left:28px}.map-node:nth-of-type(2n),.map-node:nth-of-type(2n).is-unlocked:hover{transform:none}.map-node{grid-template-columns:42px 1fr auto;min-height:112px;padding:17px}.final-node{margin-top:10px}.notebook-heading{align-items:flex-start}.companion-record>div:first-child,.companion-entry-grid{grid-template-columns:1fr}.companion-record>div:first-child{align-items:start}.notebook-heading .seal{width:44px;height:44px}.notebook-grid,.finale-questions{grid-template-columns:1fr}.notebook-grid{gap:34px;margin-top:38px}.chapter-page{display:block}.chapter-rail{min-height:0;padding:18px;position:relative;top:0}.chapter-rail .back-button,.chapter-rail>p,.chapter-rail nav,.chapter-rail .rail-goal{display:none}.chapter-index{margin-top:0}.chapter-rail h1{margin-bottom:8px;font-size:24px}.chapter-content{padding:18px 14px 74px}.story-panel{padding:26px 20px}.story-panel>h2{font-size:38px}.story-choice>div,.question-actions{flex-direction:column;align-items:stretch}.story-choice button,.small-primary,.text-button{justify-content:center;width:100%}.learning-section{padding:56px 0}.section-heading{gap:12px}.section-heading>span{width:40px;height:40px}.visual-stage{transform-origin:50%;min-height:236px}.triangle-shape{width:110px;height:96px}.concept-grid,.worked-example{grid-template-columns:1fr}.worked-example>p{grid-column:1}.question-card{padding:18px 15px}.reward-slip .seal{top:16px;left:16px}.reward-slip blockquote{margin-top:32px}.formula-card{grid-template-columns:30px 1fr}.formula-card .stars{grid-column:2}}@media (width<=390px){.welcome-topline{font-size:9px}.hero-copy{bottom:114px}.hero-copy h1{font-size:48px}.hero-dialogue .seal{display:none}.hero-dialogue blockquote{padding-left:12px}.hero-actions .ghost-action{display:none}.brand-mark{width:38px;height:38px}.site-header nav button{padding:0 6px}.map-node{grid-template-columns:34px 1fr;gap:10px}.map-node .stars,.map-node .lock-label{grid-column:2}.coordinate-grid,.function-grid{transform:scale(.85)}}
