:root{--ink:#102b2d;--ink-soft:#4f6664;--paper:#f7f3e9;--paper-deep:#eee7d7;--white:#fffdf8;--red:#e6533f;--red-dark:#bd372b;--jade:#2d9b82;--jade-dark:#17715f;--yellow:#f6c653;--line:#102b2d21;--shadow:0 24px 70px #25322d1f}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);min-width:320px;color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Avenir Next,Avenir,Nunito Sans,Segoe UI,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}.page-shell{background:radial-gradient(circle at 9% 4%, #f6c65338, transparent 28%), radial-gradient(circle at 94% 88%, #2d9b8221, transparent 29%), linear-gradient(#102b2d06 1px, transparent 1px), linear-gradient(90deg, #102b2d06 1px, transparent 1px), var(--paper);background-size:auto,auto,34px 34px,34px 34px,auto;width:100%;min-height:100vh;padding:0 42px;position:relative;overflow:hidden}.background-character{color:#e6533f09;pointer-events:none;-webkit-user-select:none;user-select:none;font-family:Songti SC,STSong,serif;font-size:clamp(320px,42vw,650px);line-height:.9;position:absolute;top:50px;right:-45px}.topbar{z-index:2;border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;max-width:1440px;height:92px;margin:0 auto;display:flex;position:relative}.brand{color:var(--ink);align-items:center;gap:12px;text-decoration:none;display:inline-flex}.brand-mark{background:var(--red);color:#fff;border-radius:11px 11px 11px 3px;place-items:center;width:43px;height:43px;font-family:Songti SC,STSong,serif;font-size:25px;font-weight:700;display:grid;transform:rotate(-2deg);box-shadow:0 8px 18px #e6533f3d}.brand>span:last-child{letter-spacing:.16em;flex-direction:column;line-height:1;display:flex}.brand strong{letter-spacing:.2em;font-size:15px}.brand small{color:var(--red);letter-spacing:.35em;margin-top:5px;font-size:9px;font-weight:800}.topbar-actions{align-items:center;gap:13px;display:flex}.lesson-count{color:var(--ink-soft);font-size:13px;font-weight:700}.library-status{color:var(--ink-soft);letter-spacing:.04em;align-items:center;gap:7px;font-size:11px;font-weight:750;display:inline-flex}.library-status:before{content:"";background:var(--jade);border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #2d9b821c}.library-status.has-error:before{background:var(--yellow);box-shadow:0 0 0 4px #f6c65324}.voice-picker{border:1px solid var(--line);background:#eee7d794;border-radius:18px 18px 18px 6px;align-items:center;gap:3px;padding:4px;display:flex;box-shadow:inset 0 1px #ffffffb8}.voice-picker-label{color:var(--ink-soft);letter-spacing:.16em;padding:0 7px 0 8px;font-size:9px;font-weight:850}.voice-option{min-height:38px;color:var(--ink-soft);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:13px 13px 13px 4px;align-items:center;gap:7px;padding:5px 9px 5px 6px;transition:background .18s,color .18s,box-shadow .18s,transform .18s;display:flex}.voice-option:hover:not(.active){color:var(--ink);background:#fffdf8b8}.voice-option.active{background:var(--ink);color:#fff;box-shadow:0 7px 16px #102b2d29}.voice-option:active{transform:translateY(1px)}.voice-mark{background:#fffdf8db;border:1px solid #102b2d1f;border-radius:9px 9px 9px 3px;flex:0 0 28px;place-items:center;width:28px;height:28px;font-family:Songti SC,STSong,serif;font-size:15px;font-weight:800;line-height:1;display:grid;transform:rotate(-2deg)}.voice-option[data-voice=tina] .voice-mark{color:var(--red)}.voice-option[data-voice=cheerful-boy] .voice-mark{color:var(--jade-dark);transform:rotate(2deg)}.voice-option-copy{flex-direction:column;line-height:1.05;display:flex}.voice-option-copy strong{white-space:nowrap;font-size:10px;font-weight:850}.voice-option-copy small{white-space:nowrap;color:currentColor;opacity:.68;margin-top:3px;font-size:7px;font-weight:700}.icon-button,.modal-close{border:1px solid var(--line);width:42px;height:42px;color:var(--ink);cursor:pointer;background:#fffdf8b8;border-radius:50%;place-items:center;transition:all .18s;display:grid}.icon-button:hover,.modal-close:hover{border-color:var(--ink);transform:translateY(-2px)}.scene-strip{z-index:3;grid-template-columns:repeat(9,minmax(0,1fr));gap:7px;max-width:1440px;margin:18px auto 0;display:grid;position:relative}.scene-strip button{border:1px solid var(--line);min-width:0;min-height:64px;color:var(--ink-soft);cursor:pointer;text-align:left;background:#fffdf88c;border-radius:15px 15px 15px 5px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;padding:10px 9px;transition:all .18s;display:grid;position:relative;overflow:hidden}.scene-strip button:hover:not(:disabled){color:var(--ink);background:#fffdf8e6;border-color:#102b2d4d;transform:translateY(-2px)}.scene-strip button.active{border-color:var(--ink);background:var(--ink);color:#fff;box-shadow:0 9px 20px #102b2d24}.scene-strip button:disabled{cursor:wait;opacity:.45}.scene-strip button>span{flex-direction:column;gap:1px;min-width:0;display:flex}.scene-strip strong{text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:800;overflow:hidden}.scene-strip small{opacity:.68;font-family:Songti SC,serif;font-size:9px}.scene-strip em{opacity:.48;font-size:8px;font-style:normal;font-weight:800;position:absolute;bottom:5px;right:6px}.game-layout{z-index:1;grid-template-columns:minmax(660px,1.72fr) minmax(280px,.78fr);grid-template-areas:"board lesson";align-items:start;gap:clamp(40px,5vw,82px);width:100%;min-width:0;max-width:1440px;margin:0 auto;padding:42px 0 48px;display:grid;position:relative}.lesson-panel{flex-direction:column;grid-area:lesson;gap:22px;min-width:0;display:flex}.eyebrow,.focus-label{color:var(--jade-dark);letter-spacing:.16em;text-transform:uppercase;align-items:center;gap:7px;font-size:11px;font-weight:800;display:inline-flex}h1,h2,p{margin:0}h1{letter-spacing:-.045em;margin-top:14px;font-family:Georgia,Times New Roman,serif;font-size:clamp(42px,4vw,64px);font-weight:500;line-height:.96}h1 span{color:var(--red);margin-top:9px;font-style:italic;display:block}.intro-copy{max-width:490px;color:var(--ink-soft);margin-top:22px;font-size:15px;line-height:1.7}.progress-card,.word-focus{border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffdf89e;border-radius:20px}.progress-card{padding:18px 20px 16px}.progress-heading,.progress-meta{justify-content:space-between;align-items:center;display:flex}.progress-heading span{font-size:13px;font-weight:700}.progress-heading strong{color:var(--red);font-family:Georgia,serif;font-size:18px}.progress-track{background:var(--paper-deep);border-radius:99px;height:8px;margin:13px 0 9px;overflow:hidden}.progress-track span{border-radius:inherit;background:linear-gradient(90deg, var(--red), #f48b62);min-width:0;height:100%;transition:width .5s cubic-bezier(.22,1,.36,1);display:block}.progress-meta{color:#7b8d89;text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:700}.stats-row{grid-template-columns:repeat(3,1fr);gap:9px;display:grid}.stat{border:1px solid var(--line);min-width:0;color:var(--ink-soft);background:#fffdf87a;border-radius:16px;grid-template-columns:auto 1fr;align-items:center;gap:3px 7px;padding:13px 12px;display:grid}.stat svg{grid-row:1/3}.stat span{letter-spacing:.1em;text-transform:uppercase;font-size:9px;font-weight:800}.stat strong{color:var(--ink);font-size:15px}.accent-stat svg,.accent-stat strong{color:var(--red)}.word-focus{min-height:119px;padding:18px 20px;position:relative;overflow:hidden}.word-focus.has-word{background:#e8f6efb3;border-color:#2d9b8252}.focus-content{grid-template-columns:auto minmax(0,1fr) minmax(84px,auto);align-items:center;gap:15px;margin-top:12px;display:grid}.focus-hanzi{overflow-wrap:anywhere;min-width:0;font-family:Songti SC,STSong,serif;font-size:clamp(24px,2.5vw,37px);line-height:1.1}.focus-content>div:last-child{text-align:right;flex-direction:column;gap:2px;min-width:0;max-width:155px;display:flex}.focus-content strong{font-size:13px;line-height:1.2}.focus-content span{color:var(--jade-dark);font-size:11px}.word-sound{background:var(--jade);color:#fff;cursor:pointer;border:0;border-radius:50%;place-items:center;width:36px;height:36px;transition:all .18s;display:grid}.word-sound:hover{background:var(--jade-dark);transform:scale(1.07)}.word-sound:disabled{cursor:not-allowed;opacity:.38;transform:none}.focus-empty{color:#80918e;align-items:center;gap:13px;margin-top:13px;font-size:12px;display:flex}.empty-seal{width:38px;height:38px;color:var(--red);border:1px dashed #e6533f73;border-radius:9px 9px 9px 3px;place-items:center;font-family:Songti SC,serif;font-size:20px;display:grid;transform:rotate(-3deg)}.lesson-actions{align-items:center;gap:10px;display:flex}.secondary-button,.text-button,.primary-button{cursor:pointer;border:0;justify-content:center;align-items:center;gap:9px;font-weight:750;transition:all .18s;display:inline-flex}.secondary-button{border:1px solid var(--ink);min-height:46px;color:var(--ink);background:0 0;border-radius:13px;padding:0 18px;font-size:12px}.secondary-button:hover{background:var(--ink);color:#fff;transform:translateY(-2px)}.text-button{min-height:44px;color:var(--ink-soft);background:0 0;padding:0 10px;font-size:12px}.text-button:hover{color:var(--red)}.board-panel{min-width:0;box-shadow:var(--shadow);background:#fffdf8e0;border:1px solid #102b2d14;border-radius:32px;grid-area:board;padding:clamp(25px,3vw,40px);transition:border-color .22s,background .22s;position:relative}.board-panel:before{content:"";pointer-events:none;border:1px solid #102b2d0e;border-radius:23px;transition:border-color .22s;position:absolute;inset:12px}.board-panel.challenge-mode{background:linear-gradient(135deg,#e6533f09,#0000 34%),#fffdf8e6;border-color:#e6533f38}.board-panel.challenge-mode:before{border-color:#e6533f1f}.board-topline,.board-footer{z-index:1;justify-content:space-between;align-items:center;display:flex;position:relative}.board-kicker{color:var(--red);letter-spacing:.18em;text-transform:uppercase;font-size:10px;font-weight:850}.board-topline h2{letter-spacing:-.035em;margin:5px 0 0;font-family:Georgia,serif;font-size:clamp(24px,2.4vw,34px);font-weight:500}.board-top-actions{align-items:center;gap:10px;display:flex}.mode-switch{border:1px solid var(--line);background:#eee7d78f;border-radius:16px 16px 16px 5px;align-items:center;gap:3px;padding:3px;display:flex}.mode-option{min-height:40px;color:var(--ink-soft);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:12px 12px 12px 4px;align-items:center;gap:6px;padding:5px 9px 5px 5px;transition:background .18s,color .18s,box-shadow .18s,transform .18s;display:flex}.mode-option:hover:not(.active){color:var(--ink);background:#fffdf8c2}.mode-option.active{background:var(--ink);color:#fff;box-shadow:0 6px 15px #102b2d24}.mode-option[data-mode=challenge].active{background:var(--red);box-shadow:0 6px 15px #e6533f38}.mode-option:active{transform:translateY(1px)}.mode-mark{width:26px;height:26px;color:var(--jade-dark);background:#fffdf8e6;border:1px solid #102b2d1f;border-radius:8px 8px 8px 3px;flex:0 0 26px;place-items:center;font-family:Songti SC,STSong,serif;font-size:13px;font-weight:850;line-height:1;display:grid}.mode-option[data-mode=challenge] .mode-mark{color:var(--red-dark)}.mode-option-copy{flex-direction:column;line-height:1.05;display:flex}.mode-option-copy strong{white-space:nowrap;font-size:9px;font-weight:850}.mode-option-copy small{white-space:nowrap;color:currentColor;opacity:.68;margin-top:3px;font-size:7px;font-weight:750}.combo-pill{color:#758481;letter-spacing:.05em;text-transform:uppercase;background:#f7f3e9b8;border:1px solid #102b2d14;border-radius:99px;align-items:center;gap:7px;padding:9px 13px;font-size:10px;font-weight:800;transition:all .25s;display:inline-flex}.combo-pill.active{color:#bd671c;background:#fff0d2;box-shadow:0 0 0 5px #f6c6531f}.card-grid{z-index:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,2.2vw,34px);margin:21px 0 24px;display:grid;position:relative}.language-zone{min-width:0;position:relative}.zone-en{padding-right:clamp(10px,1.1vw,17px)}.zone-zh{border-left:1px dashed #102b2d2b;padding-left:clamp(10px,1.1vw,17px)}.language-zone-heading{min-height:35px;color:var(--ink-soft);align-items:center;gap:9px;margin-bottom:12px;display:flex}.language-zone-heading>span{width:27px;height:27px;color:var(--jade-dark);background:#2d9b821a;border-radius:8px 8px 8px 3px;place-items:center;font-size:8px;font-weight:850;display:grid}.zone-zh .language-zone-heading>span{color:var(--red-dark);background:#e6533f1a}.language-zone-heading div{flex-direction:column;gap:1px;display:flex}.language-zone-heading strong{color:var(--ink);font-size:12px}.language-zone-heading small{color:#657b77;letter-spacing:.06em;text-transform:uppercase;font-size:8px;font-weight:700}.language-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(11px,1.25vw,18px);display:grid}.game-card-slot{min-width:0;position:relative}.game-card{--card-index:0;aspect-ratio:1/1.25;background:var(--white);width:100%;min-width:0;color:var(--ink);cursor:pointer;text-align:left;animation:card-in .48s calc(var(--card-index) * 35ms) backwards cubic-bezier(.22, 1, .36, 1);border:1px solid #102b2d1f;border-radius:20px 20px 20px 7px;padding:0;transition:transform .28s cubic-bezier(.22,1,.36,1),box-shadow .19s,border-color .19s,opacity .24s,visibility 0s linear .26s;display:block;position:relative;overflow:hidden;box-shadow:0 8px #102b2d0b,0 12px 24px #25322d0d}.game-card:after{content:"";background:var(--jade);opacity:0;backface-visibility:hidden;height:4px;transition:opacity .18s,background-color .14s;position:absolute;bottom:0;left:0;right:0}.game-card:before{content:"✓";z-index:8;background:var(--jade);color:#fff;opacity:0;pointer-events:none;border:2px solid #fffdf8f5;border-radius:11px 11px 11px 4px;place-items:center;width:32px;height:32px;font-size:17px;font-weight:900;line-height:1;display:grid;position:absolute;top:10px;right:10px;transform:translateY(-8px)scale(.65)rotate(8deg);box-shadow:0 0 0 4px #2d9b822e,0 8px 16px #185f5133}.game-card:hover:not(:disabled){z-index:2;border-color:#102b2d47;transform:translateY(-6px)rotate(-.6deg);box-shadow:0 12px #102b2d0b,0 20px 34px #25322d1c}.game-card:focus-visible,.secondary-button:focus-visible,.text-button:focus-visible,.icon-button:focus-visible,.voice-option:focus-visible,.mode-option:focus-visible,.word-sound:focus-visible,.primary-button:focus-visible,.modal-close:focus-visible{outline-offset:3px;outline:3px solid #2d9b8257}.card-audio-button:focus-visible{outline-offset:2px;outline:3px solid #2d9b8257}.game-card.selected{border-color:var(--jade);transform:translateY(-5px);box-shadow:0 0 0 4px #2d9b8224,0 12px 26px #185f5121}.game-card.selected:after{background:var(--jade);opacity:1}.game-card.correct{--match-tilt:0deg;z-index:3;border-color:var(--jade);box-shadow:0 0 0 2px var(--white), 0 0 0 7px #2d9b823d, 0 18px 34px #185f512e;animation:.62s cubic-bezier(.22,1.28,.36,1) both match-pop,.82s ease-in-out .42s infinite alternate correct-glow;transform:translateY(-5px)}.zone-en .game-card.correct{--match-tilt:-.8deg}.zone-zh .game-card.correct{--match-tilt:.8deg}.game-card.correct:before{opacity:1;animation:.52s cubic-bezier(.2,1.4,.35,1) 90ms both match-stamp}.game-card.correct:after{background:linear-gradient(90deg, var(--jade-dark), #65c9aa, var(--jade-dark));opacity:1}.card-zh{background:linear-gradient(145deg,#fffdf8 35%,#fbf0e9 100%)}.card-en{background:linear-gradient(145deg,#fffdf8 35%,#edf5f2 100%)}.card-face{border-radius:inherit;position:absolute;inset:0}.card-front{background:inherit;flex-direction:column;justify-content:space-between;align-items:flex-start;padding:18px;display:flex}.card-learning-copy{z-index:2;flex-direction:column;flex:1;align-items:flex-start;width:100%;min-height:0;display:flex;position:relative}.card-zh .card-learning-copy{padding-right:44px}.card-art{z-index:0;border-radius:inherit;background:#f2eee5;position:absolute;inset:0;overflow:hidden}.card-art:after{content:"";pointer-events:none;background:linear-gradient(#fff0 42%,#fffdf824 62%,#fffdf8b3 100%),linear-gradient(135deg,#e6533f0b,#0000 45%);position:absolute;inset:0}.card-art img{object-fit:cover;object-position:center 35%;width:100%;height:100%;transition:transform .36s cubic-bezier(.22,1,.36,1);display:block;transform:scale(1.01)}.game-card:hover:not(:disabled) .card-art img{transform:scale(1.055)}.card-language{z-index:3;color:#617572;letter-spacing:.15em;font-size:9px;font-weight:850;position:relative}.card-zh.has-image{background:#efe7da;border-color:#ac694638;box-shadow:0 9px #62412c0f,0 15px 28px #4d36281c}.card-zh.has-image .card-front{background:#f4eee4;grid-template-rows:minmax(0,1fr) 66px;grid-template-columns:minmax(0,1fr);justify-content:stretch;align-items:stretch;gap:6px;padding:0;display:grid}.card-zh.has-image .card-language{display:none}.card-zh.has-image .card-art{background:#fffdf8;border-radius:19px 19px 11px 4px;place-items:center;width:100%;min-width:0;height:100%;min-height:0;max-height:100%;display:grid;position:relative;inset:auto}.card-zh.has-image .card-art:after{background:linear-gradient(#0000 76%,#f6eee047)}.card-zh.has-image .card-art img{object-fit:contain;object-position:center;min-width:0;min-height:0;transform:scale(.98)}.game-card.card-zh.has-image:hover:not(:disabled) .card-art img{transform:scale(1.025)}.card-zh.has-image .card-learning-copy{z-index:2;background:#fffdf8fa;border-top:0;border-radius:11px 11px 19px 6px;justify-content:center;width:100%;height:auto;min-height:0;padding:10px 50px 9px 13px;position:relative;bottom:auto;left:auto;right:auto;box-shadow:0 -2px 10px #2d211909}.card-zh.has-image .card-word{text-shadow:0 1px #fff;width:auto;max-width:100%;margin:0 0 3px;padding:0;font-size:clamp(27px,2.25vw,37px);line-height:.96}.card-zh.has-image.medium-text .card-word{white-space:nowrap;font-size:clamp(23px,1.8vw,28px);line-height:1}.card-zh.has-image.long-text .card-word{font-size:clamp(22px,1.8vw,29px);line-height:1}.card-zh.has-image.extra-long-text .card-word{font-size:clamp(18px,1.5vw,24px);line-height:1.05}.card-zh.has-image .card-pinyin{font-size:8px;line-height:1}.card-audio-button{z-index:7;width:38px;height:38px;color:var(--jade-dark);cursor:pointer;background:#fffdf8f5;border:1px solid #17715f52;border-radius:50%;place-items:center;padding:0;transition:all .18s;display:grid;position:absolute;bottom:12px;right:12px;box-shadow:0 4px 10px #185f5114}.card-audio-button:hover{border-color:var(--jade);background:var(--jade);color:#fff;transform:translateY(-2px)scale(1.04)}.card-audio-button:before{content:"";border:1px solid var(--jade);opacity:0;pointer-events:none;border-radius:50%;position:absolute;inset:-4px}.card-audio-button.playing{background:var(--jade);color:#fff}.card-audio-button.playing:before{animation:.9s ease-out infinite sound-ring}.card-word{letter-spacing:-.035em;overflow-wrap:anywhere;width:100%;margin-top:auto;margin-bottom:auto;padding:12px 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(21px,1.8vw,30px);font-weight:600;line-height:1.02}.card-zh .card-word{letter-spacing:.03em;font-family:Songti SC,STSong,Noto Serif CJK SC,serif;font-size:clamp(32px,2.85vw,46px);font-weight:650}.game-card.card-zh.medium-text .card-word{white-space:nowrap;font-size:clamp(29px,2.45vw,39px);line-height:1.03}.game-card.long-text .card-word{font-size:clamp(17px,1.45vw,23px);line-height:1.08}.game-card.card-zh.long-text .card-word{font-size:clamp(24px,2.1vw,33px);line-height:1.06}.game-card.card-zh.has-image.long-text .card-word{font-size:clamp(22px,1.8vw,29px)}.game-card.card-zh.extra-long-text .card-word{font-size:clamp(19px,1.65vw,26px);line-height:1.12}.game-card.extra-long-text .card-word{font-size:clamp(14px,1.15vw,19px);line-height:1.12}.card-pinyin{color:var(--red-dark);letter-spacing:.08em;font-family:Avenir Next,sans-serif;font-size:11px;font-weight:750}.game-card.card-zh.has-image.long-text .card-front{grid-template-rows:minmax(0,1fr) 82px}.game-card.card-zh.has-image.extra-long-text .card-front{grid-template-rows:minmax(0,1fr) 94px}.game-card.card-zh.has-image.long-text .card-learning-copy,.game-card.card-zh.has-image.extra-long-text .card-learning-copy{padding:7px 52px 7px 12px}.game-card.card-zh.has-image.long-text .card-word{margin-bottom:4px;font-size:clamp(20px,1.55vw,25px);line-height:1.02}.game-card.card-zh.has-image.extra-long-text .card-word{margin-bottom:4px;font-size:clamp(17px,1.35vw,22px);line-height:1.02}.game-card.card-zh.has-image.long-text .card-pinyin,.game-card.card-zh.has-image.extra-long-text .card-pinyin{letter-spacing:.045em;overflow-wrap:anywhere;max-width:100%;font-size:7px;line-height:1.18}.game-card.matched{pointer-events:none;visibility:hidden;opacity:0;box-shadow:none;transition:transform .36s cubic-bezier(.4,0,.2,1),opacity .3s,visibility 0s linear .36s;animation:none;transform:scale(.78)}.game-card.wrong{border-color:var(--red);animation:.42s both shake;box-shadow:0 0 0 4px #e6533f1f}.game-card.wrong:after{background:var(--red);opacity:1}.game-card.hinted{border-color:var(--yellow);animation:.7s ease-in-out 2 hint-pulse;box-shadow:0 0 0 5px #f6c65333,0 16px 32px #a87a0e1f}.board-footer{color:#5f7470;min-height:24px;font-size:11px;font-weight:650}.board-footer p{align-items:center;gap:7px;transition:color .18s;display:flex}.board-footer p.error-message{color:var(--red-dark)}.board-footer>span{letter-spacing:.08em;text-transform:uppercase;font-size:10px}.page-footer{z-index:1;border-top:1px solid var(--line);color:#71827f;letter-spacing:.14em;text-transform:uppercase;justify-content:space-between;max-width:1440px;margin:0 auto;padding:20px 0 28px;font-size:10px;font-weight:700;display:flex;position:relative}.page-footer span:first-child{color:var(--red);letter-spacing:.1em;font-family:Songti SC,serif;font-size:13px}.scene-directory{z-index:1;background:radial-gradient(circle at 95% 2%,#f6c65333,#0000 26%),#fffdf8cc;border:1px solid #102b2d17;border-radius:32px 32px 32px 11px;max-width:1440px;margin:10px auto 44px;padding:clamp(28px,3.4vw,48px);position:relative;overflow:hidden;box-shadow:0 22px 60px #25322d14}.scene-directory:after{content:"旅";color:#e6533f0b;pointer-events:none;font-family:Songti SC,STSong,serif;font-size:250px;font-weight:700;line-height:1;position:absolute;top:-55px;right:-12px}.scene-directory-intro{z-index:1;grid-template-columns:minmax(0,1fr) minmax(300px,.72fr);align-items:end;gap:42px;display:grid;position:relative}.directory-eyebrow{color:var(--jade-dark);letter-spacing:.16em;text-transform:uppercase;align-items:center;gap:8px;font-size:10px;font-weight:850;display:inline-flex}.scene-directory-intro h2{letter-spacing:-.045em;max-width:720px;margin-top:10px;font-family:Georgia,Times New Roman,serif;font-size:clamp(32px,3.4vw,49px);font-weight:500;line-height:1.03}.scene-directory-intro>p{color:var(--ink-soft);font-size:13px;line-height:1.75}.scene-directory-grid{z-index:1;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin-top:31px;display:grid;position:relative}.scene-guide-card{border:1px solid var(--line);min-width:0;color:var(--ink);background:#f7f3e99e;border-radius:18px 18px 18px 6px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;padding:17px;text-decoration:none;transition:transform .18s,border-color .18s,background .18s,box-shadow .18s;display:grid}.scene-guide-card:hover{background:var(--white);border-color:#102b2d4d;transform:translateY(-3px);box-shadow:0 12px 26px #25322d14}.scene-guide-seal{width:45px;height:45px;color:var(--red-dark);background:#e6533f12;border:1px solid #e6533f3d;border-radius:12px 12px 12px 4px;place-items:center;font-family:Songti SC,STSong,serif;font-size:23px;font-weight:700;display:grid;transform:rotate(-2deg)}.scene-guide-copy{flex-direction:column;min-width:0;display:flex}.scene-guide-copy small{color:var(--jade-dark);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:5px;font-size:8px;font-weight:800;display:inline-flex}.scene-guide-copy strong{margin-top:3px;font-family:Georgia,serif;font-size:19px;font-weight:600}.scene-guide-copy>span{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:9px;line-height:1.45;overflow:hidden}.scene-guide-arrow{color:#8a9996;transition:color .18s,transform .18s}.scene-guide-card:hover .scene-guide-arrow{color:var(--red);transform:translate(2px,-2px)}.learning-method{z-index:1;border-top:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;margin-top:28px;padding-top:25px;display:grid;position:relative}.learning-method article{grid-template-columns:auto minmax(0,1fr);gap:12px;display:grid}.learning-method article>span{color:var(--red);font-family:Georgia,serif;font-size:15px;font-style:italic}.learning-method strong{font-size:12px;display:block}.learning-method p{color:var(--ink-soft);margin-top:4px;font-size:10px;line-height:1.55}.scene-guide-card:focus-visible,.guide-page-shell a:focus-visible{outline-offset:3px;outline:3px solid #2d9b8257}.guide-page-shell{background:radial-gradient(circle at 7% 3%, #f6c65333, transparent 28%), radial-gradient(circle at 94% 56%, #2d9b821c, transparent 26%), linear-gradient(#102b2d06 1px, transparent 1px), linear-gradient(90deg, #102b2d06 1px, transparent 1px), var(--paper);background-size:auto,auto,34px 34px,34px 34px,auto;min-height:100vh;padding:0 42px}.guide-topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;width:100%;max-width:1180px;height:92px;margin:0 auto;display:flex}.guide-topbar nav{align-items:center;gap:22px;display:flex}.guide-topbar nav a{color:var(--ink-soft);letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:800;text-decoration:none}.guide-topbar nav a:hover{color:var(--red)}.guide-main,.guide-footer{width:100%;max-width:1180px;margin:0 auto}.guide-hero{grid-template-columns:minmax(0,1fr) 300px;align-items:center;gap:clamp(50px,8vw,110px);padding:clamp(54px,7vw,92px) 0 66px;display:grid;position:relative}.guide-back-link{color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:6px;font-size:10px;font-weight:800;text-decoration:none;display:inline-flex}.guide-back-link:hover{color:var(--red)}.guide-eyebrow{color:var(--jade-dark);letter-spacing:.16em;text-transform:uppercase;align-items:center;gap:8px;margin-top:35px;font-size:10px;font-weight:850;display:flex}.guide-hero h1{max-width:760px;margin-top:13px;font-size:clamp(48px,6.3vw,82px);line-height:.98}.guide-hero h1 span{letter-spacing:.06em;margin-top:12px;font-family:Songti SC,STSong,serif;font-size:.58em;font-style:normal}.guide-hero-copy>p{max-width:680px;color:var(--ink-soft);margin-top:25px;font-size:16px;line-height:1.75}.guide-stats{flex-wrap:wrap;gap:11px;margin-top:24px;display:flex}.guide-stats span{border:1px solid var(--line);min-height:38px;color:var(--ink-soft);background:#fffdf894;border-radius:99px;align-items:center;gap:7px;padding:0 13px;font-size:10px;font-weight:750;display:inline-flex}.guide-stats strong{color:var(--ink);font-size:12px}.guide-primary-link{background:var(--red);color:#fff;border-radius:14px 14px 14px 5px;justify-content:center;align-items:center;gap:9px;width:fit-content;min-height:49px;margin-top:28px;padding:0 19px;font-size:12px;font-weight:800;text-decoration:none;transition:background .18s,transform .18s,box-shadow .18s;display:inline-flex;box-shadow:0 10px 22px #e6533f38}.guide-primary-link:hover{background:var(--red-dark);transform:translateY(-2px);box-shadow:0 14px 28px #e6533f42}.guide-hero-seal{aspect-ratio:.84;background:linear-gradient(#102b2d09 1px, transparent 1px), linear-gradient(90deg, #102b2d09 1px, transparent 1px), var(--white);background-size:24px 24px;border:1px solid #102b2d24;border-radius:46px 46px 46px 15px;flex-direction:column;justify-content:center;align-items:center;width:270px;display:flex;position:relative;transform:rotate(2deg);box-shadow:0 28px 70px #25322d21}.guide-hero-seal:before{content:"";border:1px solid #e6533f33;border-radius:34px 34px 34px 10px;position:absolute;inset:15px}.guide-hero-seal span{color:var(--jade-dark);font-family:Songti SC,STSong,serif;font-size:145px;font-weight:700;line-height:1;position:relative}.guide-hero-seal small{color:var(--red);letter-spacing:.22em;text-transform:uppercase;margin-top:12px;font-size:10px;font-weight:850;position:relative}.phrase-guide{box-shadow:var(--shadow);background:#fffdf8db;border:1px solid #102b2d17;border-radius:32px 32px 32px 11px;padding:clamp(26px,4vw,48px)}.phrase-guide-heading{grid-template-columns:minmax(0,1fr) minmax(260px,.6fr);align-items:end;gap:36px;display:grid}.phrase-guide-heading span{color:var(--red);letter-spacing:.16em;text-transform:uppercase;font-size:10px;font-weight:850}.phrase-guide-heading h2{letter-spacing:-.04em;margin-top:7px;font-family:Georgia,serif;font-size:clamp(29px,3vw,42px);font-weight:500}.phrase-guide-heading>p{color:var(--ink-soft);font-size:12px;line-height:1.7}.phrase-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:31px 0 0;padding:0;list-style:none;display:grid}.phrase-list li{border:1px solid var(--line);background:#f7f3e98f;border-radius:16px 16px 16px 5px;grid-template-columns:28px minmax(120px,.8fr) minmax(0,1fr);align-items:center;gap:12px;min-width:0;min-height:92px;padding:15px 17px;scroll-margin-top:20px;display:grid}.phrase-number{color:#94a19f;font-family:Georgia,serif;font-size:12px;font-style:italic}.phrase-hanzi,.phrase-meaning{flex-direction:column;min-width:0;display:flex}.phrase-hanzi strong{overflow-wrap:anywhere;font-family:Songti SC,STSong,serif;font-size:23px;line-height:1.15}.phrase-hanzi span{color:var(--jade-dark);margin-top:4px;font-size:10px;font-weight:750}.phrase-meaning{border-left:1px dashed #102b2d26;padding-left:13px}.phrase-meaning small{color:#84938f;letter-spacing:.13em;text-transform:uppercase;font-size:7px;font-weight:850}.phrase-meaning strong{margin-top:4px;font-size:11px;line-height:1.35}.guide-next-step{background:radial-gradient(circle at 86% 10%, #2d9b8257, transparent 28%), var(--ink);color:#fff;border-radius:28px 28px 28px 9px;justify-content:space-between;align-items:center;gap:40px;margin-top:25px;padding:clamp(27px,4vw,47px);display:flex}.guide-next-step>div{max-width:720px}.guide-next-step span{color:#8dd5c3;letter-spacing:.16em;text-transform:uppercase;font-size:9px;font-weight:850}.guide-next-step h2{letter-spacing:-.04em;margin-top:8px;font-family:Georgia,serif;font-size:clamp(28px,3vw,41px);font-weight:500}.guide-next-step p{color:#ffffffb3;max-width:660px;margin-top:11px;font-size:12px;line-height:1.7}.guide-next-step .guide-primary-link{background:var(--yellow);color:#6e4407;box-shadow:none;flex:none;margin-top:0}.guide-next-step .guide-primary-link:hover{background:#ffd875}.guide-scene-directory{padding:38px 0 48px}.guide-scene-directory>span{color:var(--ink-soft);letter-spacing:.16em;text-transform:uppercase;font-size:9px;font-weight:850}.guide-scene-directory>div{flex-wrap:wrap;gap:8px;margin-top:13px;display:flex}.guide-scene-directory a{border:1px solid var(--line);min-height:37px;color:var(--ink-soft);background:#fffdf88c;border-radius:99px;align-items:center;gap:7px;padding:0 13px 0 8px;font-size:10px;font-weight:750;text-decoration:none;display:inline-flex}.guide-scene-directory a>span{width:26px;height:26px;color:var(--red-dark);background:#e6533f14;border-radius:50%;place-items:center;font-family:Songti SC,serif;font-size:14px;display:grid}.guide-scene-directory a:hover,.guide-scene-directory a.active{border-color:var(--ink);background:var(--ink);color:#fff}.guide-footer{border-top:1px solid var(--line);color:#71827f;letter-spacing:.08em;justify-content:space-between;align-items:center;padding:24px 0 30px;font-size:10px;font-weight:700;display:flex}.guide-footer a{color:var(--red);text-transform:uppercase;font-weight:850;text-decoration:none}.modal-backdrop{z-index:20;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#0a1f20a6;place-items:center;padding:22px;animation:.24s both fade-in;display:grid;position:fixed;inset:0}.completion-modal{background:radial-gradient(circle at 50% 0%, #f6c65333, transparent 36%), var(--white);text-align:center;border-radius:30px 30px 30px 10px;width:min(100%,460px);padding:42px;animation:.43s cubic-bezier(.22,1,.36,1) both modal-in;position:relative;box-shadow:0 36px 100px #00000042}.modal-close{width:37px;height:37px;position:absolute;top:18px;right:18px}.trophy-badge{background:var(--yellow);color:#8e5910;border-radius:50% 50% 50% 18px;place-items:center;width:68px;height:68px;margin:0 auto 17px;display:grid;transform:rotate(-3deg);box-shadow:0 12px 30px #c587143d}.modal-eyebrow{color:var(--jade-dark);letter-spacing:.18em;text-transform:uppercase;font-size:10px;font-weight:850}.completion-modal h2{margin-top:8px;font-family:Songti SC,Georgia,serif;font-size:38px;font-weight:600}.completion-modal h2 span{color:var(--red);letter-spacing:.1em;margin-top:2px;font-family:Avenir Next,sans-serif;font-size:12px;font-weight:800;display:block}.completion-modal>p{max-width:340px;color:var(--ink-soft);margin:15px auto 0;font-size:13px;line-height:1.6}.stars{color:#dcd8ca;justify-content:center;gap:8px;margin:18px 0;display:flex}.stars .earned{color:var(--yellow);filter:drop-shadow(0 4px 5px #b4770033)}.result-grid{border:1px solid var(--line);border-radius:16px;grid-template-columns:repeat(3,1fr);display:grid;overflow:hidden}.result-grid div{flex-direction:column;gap:3px;padding:13px 6px;display:flex}.result-grid div+div{border-left:1px solid var(--line)}.result-grid span{color:#778885;letter-spacing:.1em;text-transform:uppercase;font-size:8px;font-weight:800}.result-grid strong{font-size:17px}.primary-button{background:var(--red);color:#fff;border-radius:14px;width:100%;min-height:50px;margin-top:20px;box-shadow:0 10px 22px #e6533f3b}.primary-button:hover{background:var(--red-dark);transform:translateY(-2px)}.modal-review{color:var(--ink-soft);cursor:pointer;text-underline-offset:4px;background:0 0;border:0;margin-top:12px;font-size:11px;font-weight:750;text-decoration:underline}.modal-review:hover{color:var(--red)}@keyframes card-in{0%{opacity:0;transform:translateY(18px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes correct-glow{0%{box-shadow:0 0 0 2px var(--white), 0 0 0 6px #2d9b8233, 0 14px 28px #185f5124}to{box-shadow:0 0 0 2px var(--white), 0 0 0 9px #2d9b824d, 0 20px 38px #185f5133}}@keyframes match-pop{0%{transform:translateY(-5px)scale(1)rotate(0)}38%{transform:translateY(-13px) scale(1.045) rotate(var(--match-tilt))}70%{transform:translateY(-3px)scale(.992)rotate(0)}to{transform:translateY(-5px)scale(1)rotate(0)}}@keyframes match-stamp{0%{opacity:0;transform:translateY(-10px)scale(.55)rotate(12deg)}64%{opacity:1;transform:translateY(1px)scale(1.12)rotate(-4deg)}to{opacity:1;transform:translateY(0)scale(1)rotate(-2deg)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-7px)rotate(-1deg)}50%{transform:translate(6px)rotate(1deg)}75%{transform:translate(-4px)}}@keyframes hint-pulse{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-6px)scale(1.025)}}@keyframes sound-ring{0%{opacity:.65;transform:scale(.72)}to{opacity:0;transform:scale(1.45)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(20px)scale(.94)}to{opacity:1;transform:translateY(0)scale(1)}}@media (max-width:1120px){.page-shell{padding:0 26px}.game-layout{grid-template-columns:1fr;grid-template-areas:"board""lesson";gap:30px}.scene-strip{scrollbar-width:none;padding:2px 0 7px;display:flex;overflow-x:auto}.scene-strip::-webkit-scrollbar{display:none}.scene-strip button{flex:0 0 138px}.lesson-panel{grid-template-columns:1.35fr 1fr;align-items:start;gap:18px 26px;display:grid}.lesson-panel>div:first-child{grid-row:span 2}h1{font-size:52px}.progress-card,.stats-row{align-self:stretch}.word-focus{grid-column:1/2}.lesson-actions{align-self:center}}@media (max-width:760px){.page-shell{padding:0 16px}.topbar{height:76px}.topbar-actions{gap:7px}.voice-picker-label,.voice-option-copy small{display:none}.voice-option{gap:5px;min-height:42px;padding:4px 7px 4px 5px}.voice-mark{flex-basis:26px;width:26px;height:26px;font-size:14px}.lesson-count,.library-status{display:none}.scene-strip{margin-top:12px}.scene-strip button{flex-basis:126px;min-height:58px}.game-layout{padding:32px 0 34px}.lesson-panel{gap:17px;display:flex}h1{overflow-wrap:break-word;max-width:100%;font-size:clamp(36px,10.8vw,48px)}h1 span{max-width:100%}.intro-copy{overflow-wrap:anywhere;margin-top:16px}.progress-card{order:2}.stats-row{order:3}.word-focus{order:4}.lesson-actions{order:5}.board-panel{border-radius:25px;width:100%;padding:23px 17px 20px}.board-panel:before{border-radius:19px;inset:8px}.board-topline{align-items:flex-start;gap:14px}.board-top-actions{flex:none}.combo-pill{display:none}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0 20px}.zone-zh{padding-left:5px}.zone-en{padding-right:5px}.language-zone-heading{gap:6px;min-height:32px;margin-bottom:9px}.language-zone-heading>span{width:23px;height:23px}.language-zone-heading strong{font-size:9px}.language-zone-heading small{font-size:6px}.language-card-grid{grid-template-columns:1fr;gap:10px}.game-card{aspect-ratio:1/1.25;border-radius:15px 15px 15px 5px;min-height:0}.game-card:before{border-width:1px;border-radius:9px 9px 9px 3px;width:27px;height:27px;font-size:14px;top:7px;right:7px;box-shadow:0 0 0 3px #2d9b8229,0 6px 12px #185f512e}.card-front{padding:14px 12px}.card-zh .card-learning-copy{padding-right:38px}.card-zh.has-image .card-learning-copy{border-radius:9px 9px 14px 4px;height:auto;min-height:0;padding:8px 40px 7px 10px;bottom:auto;left:auto;right:auto}.card-zh.has-image .card-front{grid-template-rows:minmax(0,1fr) 58px;gap:5px}.card-zh.has-image .card-art{border-radius:14px 14px 9px 3px;inset:auto}.card-zh.has-image .card-word{font-size:clamp(25px,7.4vw,31px)}.card-zh.has-image.medium-text .card-word{font-size:clamp(20px,5.8vw,24px)}.card-zh.has-image.long-text .card-word{font-size:clamp(20px,6vw,25px)}.card-audio-button{width:34px;height:34px;bottom:8px;right:8px}.card-word{font-size:clamp(16px,4.3vw,23px)}.game-card.long-text .card-word{font-size:clamp(14px,3.8vw,19px)}.game-card.card-zh.long-text .card-word{font-size:clamp(21px,5.8vw,27px)}.game-card.card-zh.medium-text .card-word{white-space:nowrap;font-size:clamp(25px,7vw,31px)}.game-card.card-zh.has-image.long-text .card-word{font-size:clamp(20px,6vw,25px)}.game-card.extra-long-text .card-word{font-size:clamp(12px,3.25vw,16px)}.card-zh .card-word{font-size:clamp(28px,7.6vw,35px)}.game-card.card-zh.has-image.long-text .card-front{grid-template-rows:minmax(0,1fr) 78px}.game-card.card-zh.has-image.extra-long-text .card-front{grid-template-rows:minmax(0,1fr) 92px}.game-card.card-zh.has-image.long-text .card-learning-copy,.game-card.card-zh.has-image.extra-long-text .card-learning-copy{padding:6px 42px 6px 9px}.game-card.card-zh.has-image.long-text .card-word{margin-bottom:3px;font-size:clamp(17px,5.1vw,21px);line-height:1.02}.game-card.card-zh.has-image.extra-long-text .card-word{margin-bottom:3px;font-size:clamp(16px,4.7vw,19px);line-height:1.02}.game-card.card-zh.has-image.long-text .card-pinyin,.game-card.card-zh.has-image.extra-long-text .card-pinyin{letter-spacing:.025em;font-size:6.5px;line-height:1.15}.board-footer p{max-width:78%;line-height:1.4}.page-footer{flex-direction:column;gap:8px;padding-top:18px}}@media (max-width:430px){.brand-mark{width:39px;height:39px}.topbar-actions{gap:5px}.voice-picker{padding:3px}.voice-option{gap:4px;width:auto;min-height:42px;padding:4px 6px 4px 4px}.voice-option-copy{display:flex}.voice-option-copy strong{font-size:8px}.board-topline{flex-direction:column;align-items:stretch;gap:12px}.board-top-actions,.mode-switch{width:100%}.mode-option{flex:1;min-width:0;min-height:44px}.stats-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.stat{gap:2px 5px;min-width:0;padding:11px 8px}.stat svg{width:14px}.stat strong{font-size:13px}.stat span{letter-spacing:.06em;font-size:7px}.game-card{min-height:0}.lesson-actions{align-items:stretch}.secondary-button{flex:1}.completion-modal{padding:36px 22px 26px}}@media (max-width:350px){.brand>span:last-child{display:none}}@media (max-width:1120px){.scene-directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.guide-page-shell{padding:0 26px}.guide-hero{grid-template-columns:minmax(0,1fr) 230px;gap:48px}.guide-hero-seal{width:220px}.guide-hero-seal span{font-size:118px}.phrase-list{grid-template-columns:1fr}}@media (max-width:760px){.scene-directory{border-radius:24px 24px 24px 8px;margin-bottom:30px}.scene-directory-intro{grid-template-columns:1fr;gap:16px}.scene-directory-intro>p{max-width:620px}.scene-directory-grid{grid-template-columns:1fr}.learning-method{grid-template-columns:1fr;gap:17px}.guide-page-shell{padding:0 16px}.guide-topbar{height:76px}.guide-topbar nav{gap:12px}.guide-topbar nav a:first-child{display:none}.guide-topbar nav a{font-size:9px}.guide-hero{grid-template-columns:1fr;gap:30px;padding:42px 0 38px}.guide-eyebrow{margin-top:27px}.guide-hero h1{font-size:clamp(43px,13vw,66px)}.guide-hero-copy>p{font-size:14px}.guide-hero-seal{aspect-ratio:auto;border-radius:28px 28px 28px 9px;flex-direction:row;gap:24px;width:100%;max-width:none;min-height:150px;transform:none}.guide-hero-seal:before{border-radius:18px 18px 18px 6px}.guide-hero-seal span{font-size:82px}.guide-hero-seal small{margin-top:0}.phrase-guide{border-radius:24px 24px 24px 8px}.phrase-guide-heading{grid-template-columns:1fr;gap:13px}.phrase-list{margin-top:24px}.guide-next-step{flex-direction:column;align-items:flex-start;gap:22px}.guide-footer{flex-direction:column;align-items:flex-start;gap:7px;line-height:1.5}}@media (max-width:520px){.scene-directory{padding:23px 18px}.scene-guide-card{padding:14px}.scene-guide-copy>span{white-space:normal}.guide-stats{flex-direction:column;align-items:stretch}.guide-stats span{width:fit-content}.guide-primary-link{width:100%}.phrase-list li{grid-template-columns:25px minmax(0,1fr);min-height:0;padding:15px}.phrase-meaning{border-top:1px dashed #102b2d26;border-left:0;grid-column:2;margin-top:6px;padding:9px 0 0}.guide-next-step .guide-primary-link{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
