:root{--paper: #f4ecdb;--paper-2: #fbf7ec;--paper-3: #efe4cf;--ink: #26362d;--ink-soft: #5f6b5f;--ink-faint: #8c9387;--line: #d8cbb2;--line-soft: #e7ddc9;--pine: #315b4c;--pine-deep: #234337;--pine-soft: #dfe8dd;--coral: #b84632;--coral-soft: #d77a61;--gold: #b58a2f;--gold-soft: #f0e2bb;--blue: #466b86;--purple: #755d86;--shadow: 0 14px 38px rgba(63, 48, 26, .11), 0 2px 0 rgba(255, 255, 255, .7) inset;--shadow-sm: 0 5px 16px rgba(63, 48, 26, .09);--serif: "Noto Serif SC", "Songti SC", "STSong", "SimSun", serif;--sans: "PingFang SC", "Microsoft YaHei", "Noto Sans SC", system-ui, -apple-system, sans-serif;--radius: 14px;--speed: .22s}*{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100%}body{font-family:var(--sans);color:var(--ink);background:var(--paper);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}body.modal-open{overflow:hidden}button,input{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3,h4,p{margin:0}button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:3px solid rgba(184,70,50,.55);outline-offset:2px}.paper-grain{position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.26;mix-blend-mode:multiply;background-image:radial-gradient(rgba(84,64,36,.1) .6px,transparent .7px),radial-gradient(rgba(255,255,255,.55) .6px,transparent .7px);background-size:5px 5px,7px 7px;background-position:0 0,2px 3px}.screen{display:none}.screen.is-active{display:flex}.btn{--btn-bg: var(--paper-2);--btn-ink: var(--ink);position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:0 20px;border:1px solid rgba(38,54,45,.3);border-radius:10px;background:var(--btn-bg);color:var(--btn-ink);font-weight:650;letter-spacing:.03em;text-decoration:none;box-shadow:0 2px #ffffff8c inset,0 4px 10px #34281612;transition:transform var(--speed),box-shadow var(--speed),background var(--speed),color var(--speed)}.btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px #34281621}.btn:active{transform:translateY(0)}.btn-primary{--btn-bg: var(--pine);--btn-ink: #f7f1e2;border-color:var(--pine-deep)}.btn-primary:hover{--btn-bg: #3b6b59}.btn-paper{--btn-bg: var(--paper-2)}.btn-paper:hover{--btn-bg: #fffdf6}.btn-ghost{--btn-bg: transparent;border-color:transparent;box-shadow:none;color:var(--ink-soft)}.btn-ghost:hover{background:#315b4c14;color:var(--ink);box-shadow:none}.btn-lg{min-height:52px;padding:0 24px;font-size:16px}.btn.small{min-height:36px;padding:0 14px;font-size:13px;border-radius:8px}.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.btn-index{font-family:var(--serif);font-size:11px;opacity:.62;border-right:1px solid currentColor;padding-right:10px;margin-right:2px}#title-screen{position:relative;min-height:100vh;align-items:center;overflow:hidden;background:#e8cfab}.title-scene{position:absolute;inset:0}.title-svg{width:100%;height:100%;display:block}.scene-wash{position:absolute;inset:0;background:linear-gradient(90deg,#f6ecd8eb,#f6ecd8b8 34%,#f6ecd80d 64%,#32281914),linear-gradient(0deg,rgba(50,40,25,.16) 0%,transparent 32%)}.title-panel{position:relative;z-index:2;width:min(560px,calc(100vw - 48px));margin-left:clamp(28px,7vw,120px);padding:42px 44px 32px;background:#f9f3e3ed;border:1px solid rgba(89,69,43,.22);border-radius:3px;box-shadow:0 30px 70px #392a1638,0 1px #fff inset;backdrop-filter:blur(6px);transform:rotate(-.25deg)}.title-panel:before,.title-panel:after{content:"";position:absolute;width:86px;height:24px;background:#d9be8b7a;border:1px solid rgba(150,118,64,.18);top:-12px}.title-panel:before{left:28px;transform:rotate(-4deg)}.title-panel:after{right:28px;transform:rotate(3deg)}.title-kicker{display:flex;align-items:center;gap:10px;font-size:10px;letter-spacing:.18em;font-weight:700;color:var(--ink-soft);margin-bottom:18px}.kicker-line{width:32px;height:1px;background:var(--coral);display:inline-block}.game-title{font-family:var(--serif);font-weight:900;font-size:clamp(46px,5.6vw,76px);line-height:1.02;letter-spacing:.04em;color:var(--ink);display:flex;flex-direction:column;text-shadow:0 1px 0 #fff}.game-title .title-accent{color:var(--coral);margin-left:.9em}.title-rule{display:flex;align-items:center;gap:12px;margin:20px 0 16px;font-family:var(--serif);font-size:14px;letter-spacing:.18em;color:var(--ink-soft)}.title-rule i{flex:1;height:1px;background:var(--line)}.title-desc{font-size:14px;line-height:1.9;color:var(--ink-soft);margin-bottom:28px}.title-actions{display:flex;flex-direction:column;gap:10px}.title-actions .btn{justify-content:flex-start}.title-actions .btn-primary{box-shadow:0 8px 18px #23433738}.title-foot{margin-top:24px;display:flex;flex-wrap:wrap;align-items:center;gap:9px;font-size:11px;color:var(--ink-faint);letter-spacing:.06em}.dot{width:3px;height:3px;border-radius:50%;background:currentColor;display:inline-block}.title-stamp{position:absolute;z-index:3;right:clamp(30px,7vw,110px);top:50%;transform:translateY(-58%) rotate(5deg);width:78px;height:78px;border:3px solid rgba(160,54,39,.72);border-radius:7px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#a03627cc;font-family:var(--serif);font-size:21px;font-weight:800;line-height:1.15;letter-spacing:.08em;padding:5px;opacity:.88}.title-disclaimer{position:absolute;z-index:2;right:24px;bottom:18px;max-width:480px;font-size:10px;color:#3228198c;text-align:right;line-height:1.6}#create-screen{position:relative;min-height:100vh;align-items:center;justify-content:center;padding:42px 24px;background:#dfe5d8;overflow:hidden}.create-bg{position:absolute;inset:0;background:radial-gradient(circle at 12% 18%,rgba(184,70,50,.15),transparent 34%),radial-gradient(circle at 88% 76%,rgba(49,91,76,.22),transparent 36%),linear-gradient(135deg,#ece5d2,#dfe6d6 48%,#eadfc8)}.create-bg:before{content:"";position:absolute;inset:0;opacity:.22;background-image:linear-gradient(rgba(49,91,76,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(49,91,76,.16) 1px,transparent 1px);background-size:32px 32px;mask-image:radial-gradient(circle at center,black,transparent 78%)}.create-wrap{position:relative;z-index:2;width:min(1080px,100%)}.back-link{border:0;background:transparent;color:var(--ink-soft);font-size:13px;padding:6px 2px;margin-bottom:10px}.back-link:hover{color:var(--coral)}.form-sheet{background:var(--paper-2);border:1px solid rgba(75,58,35,.2);border-radius:4px;box-shadow:0 28px 70px #372a1833;padding:30px 36px 26px;position:relative;transform:rotate(.12deg)}.form-sheet:after{content:"";position:absolute;inset:9px;border:1px solid rgba(124,104,72,.15);pointer-events:none;border-radius:2px}.form-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;border-bottom:2px solid var(--ink);padding-bottom:16px;margin-bottom:24px;position:relative;z-index:1}.form-no{font-size:10px;letter-spacing:.16em;color:var(--ink-faint);font-weight:700;margin-bottom:6px}.form-head h2{font-family:var(--serif);font-size:32px;letter-spacing:.12em;line-height:1.2}.form-seal{width:76px;height:76px;border:2px solid rgba(160,54,39,.7);border-radius:50%;color:#a03627cc;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--serif);font-size:14px;line-height:1.25;letter-spacing:.08em;transform:rotate(9deg);text-align:center;flex:0 0 auto}.form-seal small{font-size:9px;letter-spacing:.15em}.form-body{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:36px;position:relative;z-index:1}.form-col{display:flex;flex-direction:column;gap:20px}.field{border:0;margin:0;padding:0;min-width:0}.field-label{display:block;font-weight:700;font-size:14px;letter-spacing:.04em;margin-bottom:9px;color:var(--ink)}.field-label small{font-weight:400;color:var(--ink-faint);font-size:11px;margin-left:6px;letter-spacing:0}#input-name{width:100%;height:48px;border:1px solid var(--line);border-bottom:2px solid var(--ink);background:#ffffff73;border-radius:6px 6px 2px 2px;padding:0 14px;font-family:var(--serif);font-size:22px;letter-spacing:.1em}#input-name:focus{background:#fff;border-color:var(--pine);outline:none}.option-list{display:grid;grid-template-columns:1fr;gap:8px}.option-list-inline{grid-template-columns:repeat(3,1fr)}.option{position:relative;display:block;cursor:pointer}.option input{position:absolute;opacity:0;pointer-events:none}.option-body{display:flex;flex-direction:column;gap:2px;padding:10px 13px;min-height:60px;border:1px solid var(--line);border-radius:8px;background:#ffffff4d;transition:border-color var(--speed),background var(--speed),box-shadow var(--speed)}.option-body b{font-size:13.5px;letter-spacing:.04em}.option-body em{font-style:normal;font-size:11.5px;color:var(--ink-soft);line-height:1.5}.option input:checked+.option-body{border-color:var(--pine);background:#eef3e9;box-shadow:0 0 0 1px var(--pine),0 4px 12px #315b4c1a}.option input:checked+.option-body:after{content:"✓";position:absolute;right:8px;top:5px;color:var(--pine);font-weight:800;font-size:12px}.option input:focus-visible+.option-body{outline:3px solid rgba(184,70,50,.5);outline-offset:2px}.form-preview{border-left:1px dashed var(--line);padding-left:30px;display:flex;flex-direction:column;align-items:stretch}.preview-label{font-size:10px;letter-spacing:.18em;color:var(--ink-faint);font-weight:700;margin-bottom:10px}.student-card{position:relative;background:linear-gradient(150deg,#f8f0dd,#eee1c6);border:1px solid #c9b996;border-radius:10px;padding:14px 16px 12px;box-shadow:0 12px 28px #45341c24;transform:rotate(-1.5deg);overflow:hidden}.student-card:before{content:"";position:absolute;width:150px;height:150px;border:22px solid rgba(184,70,50,.07);border-radius:50%;right:-68px;top:-68px}.student-card-top{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.16em;color:var(--ink-soft);font-weight:700;border-bottom:1px solid rgba(90,70,40,.25);padding-bottom:7px}.student-avatar{width:92px;height:92px;margin:12px auto 8px;border-radius:50%;background:#d9e3d4;border:2px solid rgba(49,91,76,.3);overflow:hidden;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:34px;color:var(--pine)}.student-avatar .portrait-svg{width:100%;height:100%}.student-name{font-family:var(--serif);font-size:24px;font-weight:800;text-align:center;letter-spacing:.14em;line-height:1.3}.student-meta{text-align:center;font-size:11px;color:var(--ink-soft);letter-spacing:.06em}.student-barcode{height:20px;margin:12px 0 8px;opacity:.55;background:repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 4px,var(--ink) 4px 5px,transparent 5px 9px)}.student-card-note{font-family:var(--serif);font-size:11px;color:var(--ink-soft);text-align:center;border-top:1px dashed rgba(90,70,40,.2);padding-top:8px}.preview-stats{margin-top:18px;display:grid;gap:7px}.preview-stat-row{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--ink-soft)}.preview-stat-row b{width:44px;font-weight:600;color:var(--ink)}.preview-stat-bar{flex:1;height:5px;background:#315b4c1f;border-radius:3px;overflow:hidden}.preview-stat-bar i{display:block;height:100%;background:var(--pine);border-radius:3px}.preview-tip{margin-top:auto;padding-top:16px;font-family:var(--serif);font-size:12px;line-height:1.8;color:var(--ink-soft)}.form-foot{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);margin-top:24px;padding-top:16px;position:relative;z-index:1}.form-foot p{font-size:10.5px;color:var(--ink-faint)}@media(max-width:980px){.form-body{grid-template-columns:1fr 280px;gap:24px}}@media(max-width:760px){.title-panel{margin:0 auto;padding:30px 24px 24px}.title-stamp{display:none}.title-disclaimer{position:relative;right:auto;bottom:auto;margin:14px auto 0;text-align:center;color:#322819b3}#title-screen{flex-direction:column;justify-content:center;padding:28px 16px}.game-title{font-size:50px}.form-sheet{padding:20px 16px}.form-head h2{font-size:24px}.form-seal{width:60px;height:60px;font-size:11px}.form-body{grid-template-columns:1fr}.form-preview{border-left:0;border-top:1px dashed var(--line);padding-left:0;padding-top:18px}.option-list-inline{grid-template-columns:1fr}.form-foot{flex-direction:column;align-items:stretch}.form-foot .btn{width:100%}}.form-sub{font-size:11px;color:var(--ink-faint);letter-spacing:.08em;margin-top:7px}.step-bar{display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-bottom:20px;position:relative;z-index:1;background:#ffffff42}.step-tab{flex:1;border:0;border-right:1px solid var(--line);background:transparent;padding:9px 8px;display:flex;align-items:center;justify-content:center;gap:7px;font-size:12px;color:var(--ink-faint);cursor:pointer;transition:background var(--speed),color var(--speed)}.step-tab:last-child{border-right:0}.step-tab b{font-family:var(--serif);font-size:13px;letter-spacing:.06em}.step-tab:hover{background:#315b4c0f;color:var(--ink)}.step-tab.done{color:var(--pine)}.step-tab.now{background:var(--pine);color:#f8f3e5}.step-tab.now b{color:#efd9a6}.create-page{display:flex;flex-direction:column;gap:18px}.create-page[hidden]{display:none}.page-kicker{font-size:9px;letter-spacing:.2em;color:var(--coral);font-weight:800}.option-list-two{grid-template-columns:repeat(2,1fr)}.option-list-three{grid-template-columns:repeat(3,1fr)}.option-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.option-chip{font-size:9px;line-height:1.5;padding:1px 6px;border-radius:10px;background:#315b4c17;color:#4b6a5c;font-weight:600}.option-chip.down{background:#b8463217;color:#a3523f}.chip-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.chip{position:relative;display:block;cursor:pointer}.chip input{position:absolute;opacity:0;pointer-events:none}.chip-body{display:flex;flex-direction:column;align-items:center;gap:1px;padding:7px 4px;border:1px solid var(--line);border-radius:7px;background:#ffffff52;font-size:11.5px;font-weight:650;transition:border-color var(--speed),background var(--speed),box-shadow var(--speed)}.chip-body small{font-size:8.5px;font-weight:400;color:var(--ink-faint)}.chip input:checked+.chip-body{border-color:var(--coral);background:#fbeee8;box-shadow:0 0 0 1px var(--coral)}.chip input:checked+.chip-body:after{content:"✓";position:absolute;right:5px;top:3px;color:var(--coral);font-weight:800;font-size:10px}.chip input:focus-visible+.chip-body{outline:3px solid rgba(184,70,50,.5);outline-offset:2px}.field-note{font-size:10px;color:var(--ink-faint);line-height:1.6;margin-top:6px}.create-review{border:1px dashed var(--line);border-radius:8px;padding:12px 14px;background:#ffffff47;font-size:11.5px;line-height:1.85;color:var(--ink-soft)}.create-review b{color:var(--ink)}.create-review .review-title{display:block;font-size:9px;letter-spacing:.16em;color:var(--ink-faint);font-weight:800;margin-bottom:5px}.preview-bonus{margin-top:14px;display:flex;flex-wrap:wrap;gap:4px}.preview-bonus:empty{display:none}.bonus-chip{font-size:9px;padding:2px 7px;border-radius:10px;border:1px dashed rgba(49,91,76,.28);color:var(--pine);font-weight:600}.create-nav{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.create-nav .auto-link{margin-right:auto}.create-nav .btn[hidden]{display:none}@media(max-width:760px){.step-tab{flex-direction:column;gap:1px;padding:7px 4px;font-size:10px}.step-tab b{font-size:11px}.option-list-two,.option-list-three{grid-template-columns:1fr}.chip-grid{grid-template-columns:repeat(2,1fr)}.create-nav{width:100%}.create-nav .btn{flex:1}.create-nav .auto-link{margin-right:0;width:100%;text-align:center}}@media(max-width:430px){.game-title{font-size:42px}.title-actions .btn{font-size:14px}}#game-screen{min-height:100vh;flex-direction:column;background:radial-gradient(circle at 4% 6%,rgba(184,70,50,.06),transparent 26%),radial-gradient(circle at 96% 90%,rgba(49,91,76,.09),transparent 30%),linear-gradient(180deg,#f1e9d8,#eee5d3)}#game-screen:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.32;background-image:linear-gradient(rgba(89,70,42,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(89,70,42,.035) 1px,transparent 1px);background-size:28px 28px;mask-image:linear-gradient(180deg,rgba(0,0,0,.55),transparent 70%)}.topbar{position:sticky;top:0;z-index:60;height:64px;flex:0 0 auto;display:flex;align-items:center;gap:24px;padding:0 26px;background:#f7f1e3eb;border-bottom:1px solid rgba(90,71,44,.16);backdrop-filter:blur(14px)}.brand{display:flex;align-items:center;gap:11px;flex:0 0 auto}.crest{width:38px;height:38px;border-radius:8px;background:var(--coral);color:#f8efd9;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:23px;font-weight:800;box-shadow:0 3px 8px #9b372840;position:relative}.crest:after{content:"";position:absolute;inset:3px;border:1px solid rgba(255,241,214,.45);border-radius:5px}.brand-text{display:flex;flex-direction:column;line-height:1.25}.brand-text b{font-family:var(--serif);font-size:16px;letter-spacing:.06em}.brand-text small{font-size:9px;color:var(--ink-faint);letter-spacing:.13em}.top-progress{flex:1;display:flex;align-items:center;gap:14px;max-width:520px;margin:0 auto}.tp-label{font-size:11px;font-weight:700;letter-spacing:.06em;white-space:nowrap}.tp-label span{color:var(--coral)}.tp-track{flex:1;height:6px;background:#315b4c1f;border-radius:4px;overflow:hidden}.tp-track i{display:block;height:100%;background:linear-gradient(90deg,var(--pine),#6a8f72);border-radius:4px;transition:width .6s cubic-bezier(.2,.7,.2,1)}.tp-years{display:flex;gap:4px}.tp-year{width:7px;height:7px;border-radius:50%;background:#315b4c2e}.tp-year.done{background:var(--pine)}.tp-year.now{background:var(--coral);box-shadow:0 0 0 3px #b846321f}.top-actions{display:flex;align-items:center;gap:4px;flex:0 0 auto}.top-btn,.icon-btn{border:0;background:transparent;color:var(--ink-soft);font-size:12px;font-weight:600;padding:7px 10px;border-radius:7px;transition:background var(--speed),color var(--speed)}.top-btn:hover,.icon-btn:hover{background:#315b4c14;color:var(--ink)}.icon-btn{width:32px;height:32px;padding:0;border:1px solid var(--line);font-size:16px;line-height:1}.icon-btn.off{opacity:.45;text-decoration:line-through}.game-layout{width:min(1440px,100%);margin:0 auto;padding:18px 26px 34px;display:grid;grid-template-columns:minmax(0,1fr) 306px;gap:18px;align-items:start;flex:1}.game-main{min-width:0;display:flex;flex-direction:column;gap:12px}.status-card{background:#fbf7ece6;border:1px solid rgba(100,79,48,.17);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:14px 18px;display:grid;grid-template-columns:210px minmax(0,1fr) 138px;align-items:center;gap:16px;position:relative;overflow:hidden}.status-card:after{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(var(--coral),var(--gold))}.student-mini{display:flex;align-items:center;gap:11px;min-width:0}.student-mini-avatar{width:58px;height:58px;border-radius:50%;overflow:hidden;flex:0 0 auto;background:#dbe5d6;border:2px solid rgba(49,91,76,.22);box-shadow:0 4px 10px #315b4c1f}.student-mini-avatar .portrait-svg{width:100%;height:100%;display:block}.student-mini-info{min-width:0}.mini-eyebrow{display:block;font-size:9.5px;color:var(--ink-faint);letter-spacing:.05em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-mini-info h2{font-family:var(--serif);font-size:22px;line-height:1.25;letter-spacing:.06em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:3px}.mini-tags span{font-size:9px;padding:1px 6px;border-radius:20px;background:#315b4c17;color:var(--pine);white-space:nowrap}.mini-tags span.coral{background:#b8463217;color:var(--coral)}.stat-rings{display:flex;justify-content:space-around;gap:4px;min-width:0}.stat-ring{display:flex;flex-direction:column;align-items:center;gap:3px}.ring-dial{--p: 50;--ring: var(--pine);width:50px;height:50px;border-radius:50%;background:conic-gradient(var(--ring) calc(var(--p) * 1%),rgba(70,80,65,.11) 0);display:flex;align-items:center;justify-content:center;position:relative;transition:background .45s}.ring-dial:before{content:"";position:absolute;inset:4px;background:#fbf7ed;border-radius:50%;box-shadow:0 1px 2px #46371e14 inset}.ring-dial span{position:relative;z-index:1;font-family:var(--serif);font-size:15px;font-weight:800;line-height:1}.stat-ring label{font-size:9.5px;color:var(--ink-soft);font-weight:600;letter-spacing:.05em}.stat-ring.warn .ring-dial span,.stat-ring.warn label{color:var(--coral)}.academic-block{border-left:1px dashed var(--line);padding-left:15px;display:flex;flex-direction:column;gap:1px}.academic-label{font-size:9px;letter-spacing:.1em;color:var(--ink-faint);font-weight:700}.academic-value{font-family:var(--serif);font-size:31px;font-weight:900;line-height:1.05}.academic-value span{font-size:12px;font-weight:500;color:var(--ink-faint)}.academic-sub{font-size:10px;color:var(--ink-soft);white-space:nowrap}.money-chip{margin-top:5px;display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:700;color:var(--gold);background:#b58a2f1a;border-radius:20px;padding:2px 7px;align-self:flex-start}.money-chip b{font-family:var(--serif);font-size:12px}.week-banner{position:relative;border-radius:10px;background:linear-gradient(105deg,rgba(255,255,255,.04),transparent 34%),linear-gradient(180deg,#375e4f,#294b3f);color:#edf1df;padding:12px 20px;display:flex;align-items:center;gap:20px;box-shadow:0 7px 18px #2642372e;overflow:hidden}.week-banner:after{content:"";position:absolute;inset:0;opacity:.18;background-image:radial-gradient(rgba(255,255,255,.5) .5px,transparent .7px);background-size:6px 6px;pointer-events:none}.week-banner:before{content:"";position:absolute;left:-10px;right:-10px;bottom:8px;height:1px;background:#edf1df33}.week-main{display:flex;align-items:baseline;gap:12px;min-width:0}.week-index{font-family:var(--serif);font-size:10px;letter-spacing:.14em;color:#d6cba7;border:1px solid rgba(237,241,223,.28);padding:2px 7px;border-radius:3px;white-space:nowrap}.week-main h2{font-family:var(--serif);font-size:21px;font-weight:800;letter-spacing:.08em;white-space:nowrap}.week-date{font-size:10.5px;opacity:.68;white-space:nowrap}.week-meta{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.week-pill{font-size:10px;padding:3px 8px;border-radius:20px;background:#edf1df1c;border:1px solid rgba(237,241,223,.14);white-space:nowrap}.week-pill.alert{background:#d678533d;border-color:#edb99659;color:#ffe6d3}.week-note{font-size:10.5px;color:#f0d9ad;border-left:1px solid rgba(237,241,223,.22);padding-left:16px;max-width:240px;line-height:1.5;flex:0 0 auto}.week-note b{display:block;font-size:9px;letter-spacing:.12em;opacity:.65;margin-bottom:1px}.planner{background:#fbf7ecf0;border:1px solid rgba(100,79,48,.17);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:13px 16px 14px}.planner-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:9px}.section-kicker{font-size:8.5px;letter-spacing:.16em;color:var(--ink-faint);font-weight:800;display:block}.planner-head h2{font-family:var(--serif);font-size:17px;letter-spacing:.08em;display:flex;align-items:baseline;gap:8px}.planner-head h2 em{font-style:normal;font-family:var(--sans);font-size:11px;color:var(--coral);font-weight:700}.planner-btns{display:flex;align-items:center;gap:7px}.planner-body{display:flex;align-items:stretch;gap:12px}.slots{flex:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;min-width:0}.slot{min-height:56px;border:1.5px dashed rgba(89,70,42,.25);border-radius:8px;background:#efe4cf47;display:flex;align-items:center;gap:8px;padding:7px 9px;position:relative;transition:border-color var(--speed),background var(--speed),transform var(--speed)}.slot.filled{border-style:solid;border-color:#315b4c3d;background:#f6f1e2;box-shadow:0 3px 9px #3c2d190f}.slot.filled:hover{transform:translateY(-1px)}.slot-num{position:absolute;right:6px;top:4px;font-family:var(--serif);font-size:8px;color:var(--ink-faint);opacity:.65}.slot-empty-icon{width:29px;height:29px;border-radius:7px;border:1px dashed rgba(89,70,42,.25);display:flex;align-items:center;justify-content:center;color:var(--ink-faint);font-size:16px;flex:0 0 auto}.slot-empty-text{font-size:10.5px;color:var(--ink-faint);line-height:1.4}.slot-icon{width:29px;height:29px;border-radius:7px;background:var(--cat-soft, #e6eee4);color:var(--cat, var(--pine));display:flex;align-items:center;justify-content:center;flex:0 0 auto}.slot-icon svg{width:17px;height:17px}.slot-info{min-width:0;line-height:1.3}.slot-info b{display:block;font-size:11.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.slot-info small{display:block;font-size:9px;color:var(--ink-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.slot-remove{position:absolute;right:4px;bottom:4px;width:18px;height:18px;border:0;border-radius:50%;background:transparent;color:var(--ink-faint);font-size:13px;line-height:1;display:flex;align-items:center;justify-content:center}.slot-remove:hover{background:#b846321f;color:var(--coral)}.planner-cta{display:flex;flex-direction:column;justify-content:center;gap:5px;flex:0 0 auto}.planner-cta .btn{min-height:40px;white-space:nowrap}.auto-link{border:0;background:transparent;font-size:9.5px;color:var(--ink-faint);text-decoration:underline;text-underline-offset:2px;padding:0}.auto-link:hover{color:var(--coral)}.deck{min-width:0}.deck-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:9px;padding:0 2px}.deck-head h2{font-family:var(--serif);font-size:18px;letter-spacing:.05em}.deck-head p{font-size:10px;color:var(--ink-faint);margin-top:1px}.filters{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.filter-btn{border:1px solid transparent;background:transparent;color:var(--ink-soft);font-size:10.5px;font-weight:600;padding:4px 9px;border-radius:20px;transition:all var(--speed)}.filter-btn:hover{background:#315b4c12;color:var(--ink)}.filter-btn.active{background:var(--ink);color:var(--paper-2)}.action-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(204px,1fr));gap:9px}.action-card{--cat: var(--pine);--cat-soft: #e4ece2;position:relative;text-align:left;border:1px solid rgba(100,79,48,.17);border-radius:10px;background:#fbf7ecf0;padding:10px 11px 9px;box-shadow:0 3px 10px #3f301a0e;min-height:104px;display:flex;flex-direction:column;gap:2px;transition:transform var(--speed),box-shadow var(--speed),border-color var(--speed),background var(--speed);overflow:hidden}.action-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--cat);opacity:.7}.action-card:hover{transform:translateY(-2px);box-shadow:0 9px 20px #3f301a1f;border-color:#315b4c4d}.action-card:active{transform:translateY(0)}.action-card.is-picked{border-color:var(--pine);background:#eef3e8;box-shadow:0 0 0 1.5px var(--pine),0 6px 14px #315b4c1f}.action-card.is-picked:after{content:"✓";position:absolute;right:8px;top:7px;width:18px;height:18px;border-radius:50%;background:var(--pine);color:#fff9e8;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center}.action-card.is-locked{opacity:.5;cursor:not-allowed}.action-card.is-locked:hover{transform:none;box-shadow:0 3px 10px #3f301a0e}.card-top{display:flex;align-items:center;gap:6px;margin-bottom:1px;padding-right:20px}.card-icon{width:24px;height:24px;border-radius:6px;background:var(--cat-soft);color:var(--cat);display:flex;align-items:center;justify-content:center;flex:0 0 auto}.card-icon svg{width:15px;height:15px}.card-tag{font-size:8.5px;color:var(--ink-faint);letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action-card h3{font-size:12.5px;font-weight:750;letter-spacing:.04em;line-height:1.35}.action-card .card-desc{font-size:9.5px;color:var(--ink-soft);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:auto}.card-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:6px;margin-top:5px}.card-fx{font-size:8.5px;color:var(--pine);font-weight:600;line-height:1.35}.card-cost{font-size:8.5px;color:var(--ink-faint);white-space:nowrap}.card-cost b{color:var(--coral);font-weight:700}.kbd-hint{font-size:9.5px;color:var(--ink-faint);text-align:right;padding:1px 3px 0}kbd{display:inline-block;min-width:16px;padding:0 4px;border:1px solid var(--line);border-bottom-width:2px;border-radius:3px;background:#fff6;font-family:var(--sans);font-size:9px;text-align:center}.sidebar{display:flex;flex-direction:column;gap:12px;position:sticky;top:80px}.side-card{background:#fbf7eceb;border:1px solid rgba(100,79,48,.16);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:13px 15px}.side-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px}.side-head h3{font-family:var(--serif);font-size:14px;letter-spacing:.06em}.side-head span{font-size:9px;color:var(--ink-faint)}.week-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:4px}.week-cell{aspect-ratio:1 / 1.18;border-radius:5px;background:#efe4cf8c;border:1px solid transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-size:8.5px;color:var(--ink-faint);position:relative}.week-cell b{font-family:var(--serif);font-size:10px;font-weight:700;color:var(--ink-soft)}.week-cell.past{background:#315b4c14}.week-cell.past b{color:var(--pine)}.week-cell.now{background:var(--pine);border-color:var(--pine-deep);color:#f6f1e1;box-shadow:0 3px 8px #315b4c33}.week-cell.now b{color:#fff8e6}.week-cell.exam{background:#b846321a}.week-cell.exam b{color:var(--coral)}.week-cell.exam:after{content:"考";position:absolute;bottom:1px;font-size:6.5px;color:var(--coral);font-weight:800}.week-cell.now.exam{background:var(--coral);border-color:#943627}.week-cell.now.exam b,.week-cell.now.exam:after{color:#fff4e7}.week-cell.story:before{content:"";position:absolute;top:2px;right:2px;width:3px;height:3px;border-radius:50%;background:var(--gold)}.week-legend{display:flex;gap:10px;margin-top:8px;font-size:8px;color:var(--ink-faint)}.week-legend i{font-style:normal}.week-legend .l-exam{color:var(--coral)}.week-legend .l-story{color:var(--gold)}.semester-track{display:flex;gap:5px;margin-top:11px;padding-top:9px;border-top:1px dashed var(--line)}.sem-dot{flex:1;height:4px;border-radius:3px;background:#315b4c21;position:relative}.sem-dot.done{background:var(--pine);opacity:.65}.sem-dot.now{background:var(--coral)}.sem-dot.now:after{content:"";position:absolute;width:7px;height:7px;border-radius:50%;background:var(--coral);left:50%;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 2px #f8f3e5}.people-list{display:flex;flex-direction:column;gap:7px}.person-row{display:flex;align-items:center;gap:8px;padding:3px 4px;border-radius:7px;border:0;background:transparent;text-align:left;transition:background var(--speed)}.person-row:hover{background:#315b4c0f}.person-avatar{width:31px;height:31px;border-radius:50%;overflow:hidden;flex:0 0 auto;background:#e6dfcc;border:1.5px solid rgba(100,79,48,.14)}.person-avatar .portrait-svg{width:100%;height:100%;display:block}.person-main{flex:1;min-width:0}.person-line{display:flex;align-items:baseline;justify-content:space-between;gap:6px;line-height:1.35}.person-line b{font-size:11px;font-weight:700}.person-line span{font-size:8.5px;color:var(--ink-faint);white-space:nowrap}.rel-track{display:block;height:4px;background:#4650411a;border-radius:3px;overflow:hidden;margin-top:3px}.rel-track i{display:block;height:100%;border-radius:3px;background:var(--rel, var(--pine));transition:width .5s}.tip-card{background:#f3e6b9;border:1px solid rgba(150,118,55,.24);border-radius:4px;padding:15px 16px 14px;box-shadow:0 8px 18px #5d48211f;transform:rotate(.8deg);position:relative}.tip-card:before{content:"";position:absolute;width:44px;height:13px;background:#d9be8bcc;top:-7px;left:50%;transform:translate(-50%) rotate(-3deg);border:1px solid rgba(150,118,64,.16)}.tip-card h4{font-size:9px;letter-spacing:.15em;color:#8d712f;font-weight:800;margin-bottom:5px}.tip-card p{font-family:var(--serif);font-size:12px;line-height:1.75;color:#5a4a28}.tip-card .tip-sign{margin-top:7px;text-align:right;font-size:9px;color:#9a7f42;font-family:var(--serif)}.mini-goal{background:#b8463217;color:#a3523f!important}.week-pill.activity{background:#d8b25e38;border-color:#e2c2786b;color:#ffe9b8}.week-cell.activity:before{content:"◆";position:absolute;top:1px;right:2px;font-size:6.5px;color:#b58a2f;line-height:1}.week-cell.now.activity{background:#b58a2f;border-color:#96701f}.week-cell.now.activity b,.week-cell.now.activity:before{color:#fff8e6}.week-legend .l-act{color:var(--gold)}.activity-strip{margin-top:9px;padding-top:8px;border-top:1px dashed var(--line);display:flex;flex-direction:column;gap:3px}.activity-strip .as-label{font-size:8px;letter-spacing:.14em;color:var(--ink-faint);font-weight:800}.activity-row{display:flex;align-items:baseline;justify-content:space-between;gap:6px;font-size:9.5px;line-height:1.5;color:var(--ink-soft)}.activity-row b{font-weight:700;color:var(--ink)}.activity-row span{font-size:8.5px;color:var(--ink-faint);white-space:nowrap}.activity-row.now b{color:var(--coral)}.activity-row.joined b,.activity-row.joined span{color:var(--pine)}.activity-row.empty{justify-content:flex-start;opacity:.7}.action-card.is-activity{background:#fbf6e6;border-color:#b58a2f66;box-shadow:0 4px 12px #b58a2f24}.action-card.is-activity:before{width:4px;background:var(--gold);opacity:.9}.action-card.is-activity .card-tag{color:#9a7420;font-weight:700}@media(max-width:980px){.top-progress{display:none}.game-layout{grid-template-columns:1fr}.sidebar{position:static;display:grid;grid-template-columns:1fr 1fr}.tip-card{grid-column:1 / -1}.action-grid{grid-template-columns:repeat(auto-fill,minmax(205px,1fr))}.status-card{grid-template-columns:200px 1fr 120px}}@media(max-width:760px){body{font-size:14px}.topbar{padding:0 12px;gap:8px;height:58px}.brand-text{display:none}.top-actions{margin-left:auto}.top-btn{font-size:10.5px;padding:6px 7px}.game-layout{padding:11px 10px 24px;gap:10px}.status-card{grid-template-columns:1fr auto;grid-template-areas:"student academic" "rings rings";padding:11px 12px;gap:9px}.student-mini{grid-area:student}.academic-block{grid-area:academic;border-left:0;padding-left:0;text-align:right}.stat-rings{grid-area:rings;justify-content:space-between;padding-top:4px}.week-banner{padding:10px 12px;gap:8px;flex-wrap:wrap}.week-main h2{font-size:17px}.week-meta{margin-left:auto}.planner{padding:11px 11px 12px}.planner-body{flex-direction:column}.planner-cta{flex-direction:row;align-items:center;justify-content:space-between}.planner-cta .btn{flex:1}.action-grid{grid-template-columns:1fr 1fr;gap:7px}.action-card{min-height:108px;padding:9px}.deck-head{align-items:flex-start;flex-direction:column;gap:7px}.filters{justify-content:flex-start}.sidebar{grid-template-columns:1fr}}@media(max-width:430px){.crest{width:32px;height:32px;font-size:19px}.icon-btn{display:none}.top-btn{padding:6px 5px;font-size:10px}.action-grid{grid-template-columns:1fr}.action-card{min-height:96px}.week-main{flex-wrap:wrap;gap:5px 8px}.week-date{width:100%}.week-meta{width:100%;justify-content:flex-start}.slots{grid-template-columns:1fr}.slot{min-height:48px}}body.reduce-motion *,body.reduce-motion *:before,body.reduce-motion *:after{animation-duration:.001ms!important;transition-duration:.001ms!important}.band-chip{display:inline-flex;align-items:center;padding:1px 7px;border-radius:999px;font-size:10.5px;font-weight:700;letter-spacing:.02em;border:1px solid var(--line);background:var(--paper-2);color:var(--ink-soft)}.band-zero{background:#f4e7dc;border-color:#e2c8b4;color:#8a4a2f}.band-exp{background:#e5edf4;border-color:#c4d7e6;color:#33587a}.band-reg{background:#e9efe3;border-color:#cfdcc4;color:#4a6640}.assign-paper{background:var(--paper-2);border:1px solid var(--line);border-radius:10px;padding:16px 18px;box-shadow:var(--shadow-sm)}.assign-head{text-align:center;border-bottom:1px dashed var(--line);padding-bottom:10px;margin-bottom:12px}.assign-head .school{font-size:11px;letter-spacing:.18em;color:var(--ink-faint)}.assign-head h3{margin:4px 0 2px;font-size:17px}.assign-head p{margin:0;font-size:11px;color:var(--ink-faint)}.assign-me{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:8px 10px;background:var(--paper-3);border-radius:8px;margin-bottom:10px}.assign-me span{font-size:11px;color:var(--ink-faint)}.assign-me b{font-size:16px}.assign-me em{font-size:11px;font-style:normal;color:var(--ink-soft)}.assign-list{display:flex;flex-direction:column;gap:6px}.assign-row{display:flex;align-items:center;gap:8px;font-size:12.5px;padding:6px 8px;border-radius:6px;background:var(--paper-3)}.assign-row.same{background:var(--pine-soft);border:1px solid #cfdcc4}.assign-row b{min-width:56px}.assign-row span{flex:1;color:var(--ink-soft)}.assign-row em{font-style:normal;font-size:11px;color:var(--ink-faint)}.assign-note{margin:12px 0 0;font-size:12px;line-height:1.75;color:var(--ink-soft)}.persona-note{margin-top:14px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:var(--paper-2)}.persona-note .pn-kicker{font-size:10.5px;letter-spacing:.16em;color:var(--ink-faint)}.persona-note h3{margin:4px 0 6px;font-size:18px}.persona-note p{margin:0 0 6px;font-size:12.5px;line-height:1.75;color:var(--ink)}.persona-note .pn-verdict{font-weight:600;color:var(--pine-deep)}.ach-group{margin-bottom:12px}.ach-group-head{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;color:var(--ink-soft);margin:4px 0 6px;padding-bottom:4px;border-bottom:1px dashed var(--line)}.ach-group-head b{font-size:13px;color:var(--ink)}.title-link{padding:3px 10px;border:1px solid var(--line);border-radius:999px;background:#fffdf6;color:var(--accent);font:inherit;cursor:pointer;text-decoration:none;transition:background .15s,border-color .15s}.title-link:hover{background:#f6efe0;border-color:var(--accent)}.title-link:hover{color:var(--pine)}.survey-list{display:flex;flex-direction:column;gap:14px}.survey-q.first{margin-top:2px}.survey-q-head{display:flex;align-items:baseline;gap:8px;margin-bottom:6px}.survey-q-head span{font-size:10px;font-weight:700;letter-spacing:.1em;color:var(--pine);background:var(--pine-soft);padding:1px 6px;border-radius:4px}.survey-q-head b{font-size:13px;line-height:1.6}.survey-opts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.option.compact{padding:9px 10px;align-items:flex-start}.option.compact .option-body b{font-size:12px;line-height:1.55;font-weight:550}.quest-card{display:flex;align-items:center;gap:12px;margin-top:12px;padding:10px 14px;border:1px dashed var(--line);border-left:3px solid #b08b52;border-radius:8px;background:var(--paper-2)}.quest-card[hidden]{display:none}.quest-mark{font-size:9px;letter-spacing:.14em;font-weight:800;color:#8a6a3a;white-space:nowrap}.quest-body{flex:1;min-width:0}.quest-body b{font-size:13px;font-weight:600}.quest-body small{display:block;font-size:11px;color:var(--ink-faint);margin-top:2px}.quest-tag{font-size:10px;padding:2px 7px;border-radius:999px;background:var(--paper-3);color:var(--ink-soft);white-space:nowrap}.quest-feed .feed-body h4 span{color:#8a6a3a}.quest-feed.is-done .feed-icon{box-shadow:0 0 0 2px #cfdcc4 inset}.roll-note{margin:0 0 8px;font-size:11.5px;color:var(--ink-faint);letter-spacing:.02em;padding-left:8px;border-left:2px solid var(--line)}.micro-body p,.talk-body p{margin:0;font-size:13px;line-height:1.9;color:var(--ink);white-space:pre-wrap}.talk-body{padding:12px 14px;background:var(--paper-2);border-radius:8px;border:1px solid var(--line);font-family:var(--serif)}.delta.trait{background:var(--pine-soft);color:var(--pine-deep)}.trait-block{margin-bottom:14px}.trait-block-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px;padding-bottom:4px;border-bottom:1px dashed var(--line)}.trait-block-head b{font-size:12.5px}.trait-block-head span{font-size:10.5px;color:var(--ink-faint)}.trait-row{display:grid;grid-template-columns:92px 1fr 96px;align-items:center;gap:10px;padding:5px 0}.trait-name b{display:block;font-size:12.5px}.trait-name span{font-size:10px;color:var(--ink-faint)}.trait-meter{height:6px;border-radius:99px;background:var(--paper-3);overflow:hidden}.trait-meter i{display:block;height:100%;background:linear-gradient(90deg,#b9c9ac,var(--pine))}.trait-row em{font-style:normal;font-size:11px;color:var(--ink-soft);text-align:right}.trait-persona{padding:12px 14px;background:var(--paper-2);border-radius:8px;border:1px solid var(--line);margin-bottom:14px}.trait-persona span{font-size:10px;letter-spacing:.12em;color:var(--ink-faint)}.trait-persona b{display:block;font-size:16px;margin:2px 0 4px}.trait-persona p{margin:0;font-size:12px;line-height:1.75;color:var(--ink-soft)}.quest-log-row{display:flex;gap:8px;align-items:baseline;padding:5px 0;border-bottom:1px dotted var(--line);font-size:12px}.quest-log-row span{color:var(--ink-faint);font-size:10.5px;min-width:74px}.quest-log-row b{flex:1;font-weight:550}.quest-log-row em{font-style:normal;font-size:10.5px;color:var(--ink-faint)}.quest-log-row.ok em{color:var(--pine)}.log-wrap{display:flex;flex-direction:column;gap:14px}.log-block{padding:12px 14px;background:var(--paper-2);border:1px solid var(--line);border-radius:8px}.log-head{display:flex;align-items:baseline;gap:8px;margin-bottom:6px}.log-head b{font-size:14px;color:var(--pine-deep)}.log-head span{font-size:10.5px;color:var(--ink-faint)}.log-head em{margin-left:auto;font-style:normal;font-size:11.5px;color:var(--ink-soft)}.log-list{margin:0;padding-left:16px}.log-list li{font-size:12.5px;line-height:1.85;color:var(--ink)}.modal-root{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;padding:24px;background:#1a251e8f;backdrop-filter:blur(7px)}.modal-root.open{display:flex}.modal{position:relative;width:min(740px,100%);max-height:calc(100vh - 48px);overflow-y:auto;background:var(--paper-2);border:1px solid rgba(80,61,35,.22);border-radius:7px;box-shadow:0 34px 90px #14191257;padding:28px 30px 24px;animation:modalIn .28s cubic-bezier(.2,.8,.2,1) both}.modal.wide{width:min(900px,100%)}.modal.narrow{width:min(520px,100%)}.modal:before{content:"";position:absolute;inset:7px;border:1px solid rgba(120,98,60,.13);border-radius:3px;pointer-events:none}.modal-close{position:absolute;z-index:2;top:9px;right:9px;width:28px;height:28px;border:1px solid var(--line);border-radius:50%;background:var(--paper-2);color:var(--ink-soft);font-size:15px;line-height:1;display:flex;align-items:center;justify-content:center}.modal-close:hover{background:var(--paper-3);color:var(--coral)}.modal-kicker{font-size:8.5px;letter-spacing:.18em;font-weight:800;color:var(--ink-faint);margin-bottom:6px}.modal-title{font-family:var(--serif);font-size:26px;line-height:1.25;letter-spacing:.06em;margin-bottom:5px;padding-right:26px}.modal-sub{font-size:11px;color:var(--ink-soft)}.modal-body{margin-top:16px}.modal-actions{margin-top:20px;padding-top:14px;border-top:1px dashed var(--line);display:flex;align-items:center;justify-content:flex-end;gap:9px}.modal-actions .left-note{margin-right:auto;font-size:10px;color:var(--ink-faint)}@keyframes modalIn{0%{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.event-layout{display:grid;grid-template-columns:154px minmax(0,1fr);gap:22px;align-items:start}.event-portrait-wrap{position:relative;background:linear-gradient(160deg,#e9dfc9,#f5eedd);border:1px solid var(--line);border-radius:5px;padding:10px;box-shadow:0 7px 16px #46371e17;transform:rotate(-1.2deg)}.event-portrait-wrap:after{content:"";position:absolute;width:54px;height:16px;background:#d9be8ba6;top:-9px;left:50%;transform:translate(-50%) rotate(2deg);border:1px solid rgba(150,118,64,.15)}.event-portrait{aspect-ratio:1 / 1.08;border-radius:3px;overflow:hidden;background:#dfe7d8;border:1px solid rgba(100,79,48,.15)}.event-portrait .portrait-svg{width:100%;height:100%;display:block}.event-place{margin-top:8px;text-align:center;font-size:9px;letter-spacing:.12em;color:var(--ink-faint);font-family:var(--serif)}.event-text{font-size:13.5px;line-height:1.95;color:#334036}.event-text p{margin-bottom:10px}.event-text p:last-child{margin-bottom:0}.event-choices{display:flex;flex-direction:column;gap:8px;margin-top:18px}.choice-btn{position:relative;text-align:left;border:1px solid var(--line);border-radius:8px;background:#ffffff61;padding:10px 13px 10px 40px;transition:border-color var(--speed),background var(--speed),transform var(--speed);width:100%}.choice-btn:before{content:attr(data-index);position:absolute;left:12px;top:50%;transform:translateY(-50%);width:19px;height:19px;border-radius:50%;border:1px solid rgba(49,91,76,.3);color:var(--pine);font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center}.choice-btn:hover{border-color:var(--pine);background:#eef3e8;transform:translate(2px)}.choice-btn b{display:block;font-size:12.5px;line-height:1.5}.choice-btn small{display:block;font-size:9.5px;color:var(--ink-faint);margin-top:1px}.choice-btn.is-locked{opacity:.5;cursor:not-allowed}.choice-btn.is-locked:hover{border-color:var(--line);background:#ffffff61;transform:none}.choice-btn.is-locked:before{content:"×";border-color:var(--line);color:var(--ink-faint)}.event-result{margin-top:18px;background:#f1ead8;border-left:3px solid var(--gold);padding:14px 16px;border-radius:0 6px 6px 0;font-family:var(--serif);font-size:13px;line-height:1.9;color:#3d463b;animation:fadeUp .32s ease both}.event-result .result-label{display:block;font-family:var(--sans);font-size:8.5px;letter-spacing:.16em;color:var(--gold);font-weight:800;margin-bottom:5px}.effect-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:12px}.effect-chip{font-size:9px;padding:2px 7px;border-radius:20px;background:#315b4c17;color:var(--pine);font-weight:600}.effect-chip.down{background:#b8463217;color:var(--coral)}.effect-chip.gold{background:#b58a2f21;color:#8d6a1f}.week-report-head{text-align:center;padding-bottom:14px;border-bottom:2px solid var(--ink)}.week-report-head .wr-kicker{font-size:8.5px;letter-spacing:.2em;color:var(--ink-faint);font-weight:800}.week-report-head h2{font-family:var(--serif);font-size:28px;letter-spacing:.12em;margin:2px 0}.week-report-head p{font-size:10px;color:var(--ink-soft)}.feed-list{display:flex;flex-direction:column;gap:0;margin:4px 0 0}.feed-item{display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;padding:14px 0;border-bottom:1px dashed var(--line)}.feed-icon{width:34px;height:34px;border-radius:8px;background:var(--cat-soft, #e6eee4);color:var(--cat, var(--pine));display:flex;align-items:center;justify-content:center}.feed-icon svg{width:18px;height:18px}.feed-body h4{font-size:12.5px;display:flex;align-items:baseline;gap:7px}.feed-body h4 span{font-size:9px;color:var(--ink-faint);font-weight:500}.feed-body p{font-size:11.5px;color:var(--ink-soft);line-height:1.7;margin:3px 0 5px}.feed-deltas{display:flex;flex-wrap:wrap;gap:4px}.delta{font-size:8.5px;font-weight:700;padding:1px 6px;border-radius:10px;background:#315b4c14;color:var(--pine)}.delta.up{color:var(--pine)}.delta.down{color:var(--coral);background:#b8463214}.delta.money{color:#8d6a1f;background:#b58a2f1f}.report-summary{margin-top:14px;background:#f4eddb;border:1px solid var(--line-soft);border-radius:8px;padding:12px 14px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.report-summary b{font-family:var(--serif);font-size:13px}.report-summary .delta-row{display:flex;flex-wrap:wrap;gap:5px;margin-left:auto}.exam-paper{position:relative;background:#fffdf4;border:1px solid #d9cba9;box-shadow:0 10px 24px #503c1e17;padding:17px 20px;border-radius:3px}.exam-paper:before{content:"";position:absolute;inset:6px;border:1px solid rgba(160,54,39,.18);pointer-events:none}.exam-head{text-align:center;border-bottom:2px solid var(--coral);padding-bottom:10px}.exam-head .school{font-family:var(--serif);font-size:18px;letter-spacing:.2em;color:var(--coral);font-weight:800}.exam-head h3{font-family:var(--serif);font-size:21px;letter-spacing:.12em;margin-top:2px}.exam-head p{font-size:9px;color:var(--ink-faint);letter-spacing:.1em;margin-top:2px}.exam-meta{display:flex;justify-content:space-between;gap:12px;font-size:10px;color:var(--ink-soft);padding:8px 2px;border-bottom:1px dashed var(--line)}.exam-table{width:100%;border-collapse:collapse;margin-top:2px}.exam-table th,.exam-table td{text-align:center;font-size:11px;padding:4px;border-bottom:1px solid #eee5d2}.exam-table th{font-size:8.5px;color:var(--ink-faint);letter-spacing:.1em;font-weight:700}.exam-table td:first-child{text-align:left;padding-left:8px;font-weight:600}.exam-table .sub-score{font-family:var(--serif);font-size:14px;font-weight:800}.exam-table .sub-score.low{color:var(--coral)}.exam-table .sub-score.high{color:var(--pine)}.exam-total-row{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:2px solid var(--ink);margin-top:4px;padding-top:10px}.exam-total-big{font-family:var(--serif);font-size:40px;font-weight:900;line-height:1;color:var(--coral)}.exam-total-big small{font-size:13px;color:var(--ink-faint);font-weight:500}.exam-rank-box{text-align:right}.exam-rank-box .rk{font-family:var(--serif);font-size:24px;font-weight:900;line-height:1.1}.exam-rank-box .rk small{font-size:10px;color:var(--ink-faint);font-weight:500}.exam-rank-box p{font-size:9px;color:var(--ink-soft)}.exam-rank-change{font-size:9px;font-weight:700}.exam-rank-change.up{color:var(--pine)}.exam-rank-change.down{color:var(--coral)}.exam-comments{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.exam-comment{background:#f7f0df;border-left:3px solid var(--gold);padding:8px 10px;font-size:10.5px;line-height:1.6;color:var(--ink-soft)}.exam-comment b{display:block;font-size:8px;letter-spacing:.12em;color:var(--gold);margin-bottom:2px}.exam-stamp{position:absolute;right:20px;bottom:20px;border:2px solid rgba(184,70,50,.4);color:#b8463280;border-radius:50%;width:64px;height:64px;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:10px;text-align:center;transform:rotate(-12deg);line-height:1.25;pointer-events:none}#ending-screen{position:relative;min-height:100vh;align-items:center;justify-content:center;padding:40px 24px;overflow:hidden;background:#2a3b32}.ending-sky{position:absolute;inset:0;background:radial-gradient(circle at 72% 20%,rgba(250,205,130,.75),transparent 30%),radial-gradient(circle at 24% 80%,rgba(184,70,50,.28),transparent 38%),linear-gradient(165deg,#e2b17c,#b56f57 32%,#4e6253 70%,#233a30)}.ending-sky:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(20,33,27,.72),transparent 60%)}.ending-wrap{position:relative;z-index:2;width:min(960px,100%)}.ending-card{background:#faf5e8f5;border:1px solid rgba(255,255,255,.4);border-radius:6px;box-shadow:0 34px 90px #1018136b;padding:34px 40px 30px;position:relative;overflow:hidden}.ending-card:before{content:"";position:absolute;inset:9px;border:1px solid rgba(120,98,60,.2);pointer-events:none}.ending-top{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;border-bottom:2px solid var(--ink);padding-bottom:16px}.ending-kicker{font-size:9px;letter-spacing:.22em;color:var(--coral);font-weight:800;margin-bottom:4px}.ending-title{font-family:var(--serif);font-size:clamp(34px,4.5vw,54px);line-height:1.1;letter-spacing:.06em}.ending-quote{font-family:var(--serif);font-size:13px;color:var(--ink-soft);margin-top:8px;letter-spacing:.05em}.ending-seal{flex:0 0 auto;width:84px;height:84px;border:3px solid rgba(160,54,39,.68);border-radius:50%;color:#a03627cc;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--serif);font-size:13px;letter-spacing:.1em;transform:rotate(8deg);text-align:center;line-height:1.2}.ending-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:24px;padding-top:18px}.ending-score-label{font-size:8.5px;letter-spacing:.18em;color:var(--ink-faint);font-weight:800}.ending-score{font-family:var(--serif);font-size:58px;font-weight:900;line-height:1;color:var(--coral);margin:2px 0}.ending-score small{font-size:14px;color:var(--ink-faint);font-weight:500}.ending-school{font-family:var(--serif);font-size:18px;letter-spacing:.06em;margin-top:6px}.ending-school small{display:block;font-family:var(--sans);font-size:9px;color:var(--ink-faint);letter-spacing:0;margin-top:2px}.ending-stats{display:grid;grid-template-columns:1fr 1fr;gap:7px 12px;margin-top:14px}.ending-stat{border-top:1px dashed var(--line);padding-top:5px}.ending-stat b{display:block;font-family:var(--serif);font-size:14px}.ending-stat span{font-size:8.5px;color:var(--ink-faint);letter-spacing:.06em}.epilogue{font-size:12px;line-height:1.95;color:#3c463b}.epilogue p{margin-bottom:8px}.epilogue p:first-child:first-letter{font-family:var(--serif);font-size:28px;float:left;line-height:1;margin:3px 5px 0 0;color:var(--coral)}.ending-relations{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.ending-rel-chip{font-size:9px;border:1px solid var(--line);border-radius:20px;padding:3px 9px;color:var(--ink-soft);background:#ffffff4d}.ending-rel-chip b{color:var(--ink)}.ending-memories{margin-top:18px;border-top:1px solid var(--line);padding-top:14px}.ending-memories h3{font-family:var(--serif);font-size:13px;letter-spacing:.08em;margin-bottom:7px}.memory-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.memory-note{background:#f2e7c9;border:1px solid rgba(150,118,55,.2);border-radius:3px;padding:9px 10px;font-family:var(--serif);font-size:10px;line-height:1.6;color:#5a4930;transform:rotate(-.6deg)}.memory-note:nth-child(2){transform:rotate(.8deg);background:#e9eedf}.memory-note:nth-child(3){transform:rotate(-.2deg);background:#f4e2d8}.ending-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:22px;flex-wrap:wrap}.ending-actions .left{font-size:9px;color:var(--ink-faint)}.ending-actions .btns{display:flex;gap:8px;flex-wrap:wrap}.tab-bar{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:14px}.tab-btn{border:0;background:transparent;padding:7px 13px;font-size:11.5px;color:var(--ink-soft);border-bottom:2px solid transparent;font-weight:600}.tab-btn.active{color:var(--ink);border-bottom-color:var(--coral)}.tab-btn:hover{color:var(--ink)}.album-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:9.5px;color:var(--ink-faint);margin-bottom:9px;letter-spacing:.04em}.achievement-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.achievement{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--line-soft);border-radius:8px;padding:9px 11px;background:#ffffff47}.achievement.locked{opacity:.45;filter:grayscale(.7)}.achievement .ach-icon{width:30px;height:30px;border-radius:50%;background:var(--gold-soft);display:flex;align-items:center;justify-content:center;font-size:15px;flex:0 0 auto}.achievement b{display:block;font-size:11.5px}.achievement span{display:block;font-size:9px;color:var(--ink-faint);line-height:1.45}.memory-list{display:flex;flex-direction:column;gap:0}.memory-row{display:flex;gap:12px;padding:9px 2px;border-bottom:1px dashed var(--line);align-items:baseline}.memory-row .m-date{font-family:var(--serif);font-size:9px;color:var(--ink-faint);white-space:nowrap;width:74px}.memory-row .m-title{font-size:11.5px;font-weight:600}.memory-row .m-place{margin-left:auto;font-size:8.5px;color:var(--ink-faint)}.album-empty{text-align:center;padding:30px 10px;color:var(--ink-faint);font-size:11px;line-height:1.8}.save-slots{display:flex;flex-direction:column;gap:9px}.save-slot{border:1px solid var(--line);border-radius:8px;background:#ffffff52;padding:11px 13px;display:flex;align-items:center;gap:12px}.save-slot-info{flex:1;min-width:0}.save-slot-info b{display:block;font-size:12px}.save-slot-info span{display:block;font-size:9.5px;color:var(--ink-faint)}.save-slot-btns{display:flex;gap:5px}.save-slot-btns .btn{min-height:30px;padding:0 10px;font-size:10px}.settings-list{display:flex;flex-direction:column;gap:0}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 2px;border-bottom:1px dashed var(--line)}.setting-row b{display:block;font-size:12px}.setting-row span{display:block;font-size:9px;color:var(--ink-faint)}.switch{width:42px;height:24px;border-radius:20px;border:0;background:#46504133;position:relative;flex:0 0 auto;transition:background var(--speed)}.switch:after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;background:#fff9ea;top:3px;left:3px;transition:left var(--speed);box-shadow:0 1px 3px #0000002e}.switch.on{background:var(--pine)}.switch.on:after{left:21px}.seg{display:flex;border:1px solid var(--line);border-radius:7px;overflow:hidden}.seg button{border:0;background:transparent;font-size:10px;padding:5px 10px;color:var(--ink-soft)}.seg button.active{background:var(--ink);color:var(--paper-2)}.help-steps{display:flex;flex-direction:column;gap:10px}.help-step{display:flex;gap:11px;align-items:flex-start}.help-step .num{width:22px;height:22px;border-radius:50%;background:var(--pine);color:#f7f0df;font-size:10px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;font-family:var(--serif)}.help-step b{display:block;font-size:11.5px;margin-bottom:1px}.help-step p{font-size:10px;color:var(--ink-soft);line-height:1.65}.help-note{background:#f2ead6;border-radius:7px;padding:10px 12px;font-size:10px;line-height:1.7;color:var(--ink-soft);margin-top:12px}.character-card{display:grid;grid-template-columns:150px 1fr;gap:20px}.character-portrait{background:#e8dfca;border:1px solid var(--line);border-radius:4px;padding:9px;transform:rotate(-1deg)}.character-portrait .portrait-svg{width:100%;display:block;border-radius:3px}.character-info h3{font-family:var(--serif);font-size:23px;letter-spacing:.06em}.character-info .char-role{font-size:9px;color:var(--coral);letter-spacing:.1em;font-weight:700;margin-bottom:8px}.character-info p{font-size:11.5px;line-height:1.8;color:var(--ink-soft);margin-bottom:9px}.char-rel-big{display:flex;align-items:center;gap:10px}.char-rel-big .bar{flex:1;height:7px;background:#4650411a;border-radius:4px;overflow:hidden}.char-rel-big .bar i{display:block;height:100%;background:var(--pine);border-radius:4px}.char-rel-big b{font-family:var(--serif);font-size:18px;color:var(--pine)}.char-quote{font-family:var(--serif);font-size:12px;color:var(--ink-soft);border-left:2px solid var(--gold);padding-left:10px;margin-top:10px;line-height:1.8}.archive-list{display:flex;flex-direction:column;gap:8px;margin-bottom:9px}.archive-stage{border-left:2px solid rgba(120,110,90,.22);padding-left:9px}.archive-stage-name{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:9px;letter-spacing:.12em;color:var(--coral);font-weight:700;margin-bottom:2px}.archive-stage-name em{font-style:normal;font-weight:400;color:var(--ink-faint);letter-spacing:.06em}.archive-stage p{font-size:11.5px;line-height:1.8;color:var(--ink-soft);margin:0}.archive-next{font-size:10px;line-height:1.7;color:var(--ink-faint);background:#786e5a0f;border-radius:5px;padding:7px 9px;margin-top:9px}.toast-root{position:fixed;z-index:2000;right:24px;bottom:24px;display:flex;flex-direction:column;gap:7px;align-items:flex-end;pointer-events:none;width:min(360px,calc(100vw - 32px))}@media(max-width:760px){.toast-root{left:50%;right:auto;transform:translate(-50%);align-items:center}}.toast{background:#234337f2;color:#f7f1e2;font-size:11.5px;padding:9px 16px;border-radius:22px;box-shadow:0 8px 24px #141e1842;animation:toastIn .26s ease both;text-align:center;line-height:1.5}.toast.gold{background:#8f6a1ff5}.toast.coral{background:#9b3728f5}@keyframes toastIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-up{animation:fadeUp .3s ease both}@media(max-width:1220px){.game-layout{grid-template-columns:minmax(0,1fr) 278px;padding:14px 18px 28px}.status-card{grid-template-columns:190px minmax(0,1fr) 120px;gap:10px;padding:12px 15px}.ring-dial{width:45px;height:45px}.ring-dial span{font-size:14px}.week-note{display:none}.action-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}}@media(max-width:980px){.top-progress{display:none}.game-layout{grid-template-columns:1fr}.sidebar{position:static;display:grid;grid-template-columns:1fr 1fr}.tip-card{grid-column:1 / -1}.action-grid{grid-template-columns:repeat(auto-fill,minmax(205px,1fr))}.status-card{grid-template-columns:200px 1fr 120px}.form-body{grid-template-columns:1fr 280px;gap:24px}.ending-grid{grid-template-columns:1fr;gap:14px}}@media(max-width:760px){body{font-size:14px}.topbar{padding:0 12px;gap:8px;height:58px}.brand-text{display:none}.top-actions{margin-left:auto}.top-btn{font-size:10.5px;padding:6px 7px}.game-layout{padding:11px 10px 24px;gap:10px}.status-card{grid-template-columns:1fr auto;padding:11px 12px;gap:9px}.stat-rings{grid-column:1 / -1;justify-content:space-between;padding-top:4px}.academic-block{border-left:0;padding-left:0;text-align:right}.status-card{grid-template-areas:"student academic" "rings rings"}.student-mini{grid-area:student}.academic-block{grid-area:academic}.stat-rings{grid-area:rings}.week-banner{padding:10px 12px;gap:8px;flex-wrap:wrap}.week-main h2{font-size:17px}.week-meta{margin-left:auto}.planner{padding:11px 11px 12px}.planner-body{flex-direction:column}.planner-cta{flex-direction:row;align-items:center;justify-content:space-between}.planner-cta .btn{flex:1}.action-grid{grid-template-columns:1fr 1fr;gap:7px}.action-card{min-height:108px;padding:9px}.deck-head{align-items:flex-start;flex-direction:column;gap:7px}.filters{justify-content:flex-start}.sidebar{grid-template-columns:1fr}.modal-root{padding:10px}.modal{padding:22px 18px 18px;max-height:calc(100vh - 20px)}.event-layout{grid-template-columns:1fr;gap:14px}.event-portrait-wrap{width:120px}.exam-comments{grid-template-columns:1fr}.ending-card{padding:24px 20px 22px}.ending-top{flex-direction:column-reverse;align-items:flex-start}.ending-seal{width:64px;height:64px;font-size:10px}.ending-stats{grid-template-columns:1fr 1fr}.memory-strip,.achievement-grid,.character-card{grid-template-columns:1fr}.character-portrait{width:130px}.form-sheet{padding:20px 16px}.form-head h2{font-size:24px}.form-seal{width:60px;height:60px;font-size:11px}.form-body{grid-template-columns:1fr}.form-preview{border-left:0;border-top:1px dashed var(--line);padding-left:0;padding-top:18px}.option-list-inline{grid-template-columns:1fr}.form-foot{flex-direction:column;align-items:stretch}.form-foot .btn{width:100%}.title-panel{margin:0 auto;padding:30px 24px 24px}.title-stamp{display:none}.title-disclaimer{position:relative;right:auto;bottom:auto;margin:14px auto 0;text-align:center;color:#322819b3}#title-screen{flex-direction:column;justify-content:center;padding:28px 16px}.game-title{font-size:50px}}@media(max-width:430px){.brand-text{display:none}.crest{width:32px;height:32px;font-size:19px}.icon-btn{display:none}.top-btn{padding:6px 5px;font-size:10px}.action-grid{grid-template-columns:1fr}.action-card{min-height:96px}.week-main{flex-wrap:wrap;gap:5px 8px}.week-date{width:100%}.week-meta{width:100%;justify-content:flex-start}.slots{grid-template-columns:1fr}.slot{min-height:48px}.game-title{font-size:42px}.title-actions .btn{font-size:14px}.ending-score{font-size:46px}.ending-title{font-size:34px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}@media(max-width:760px){body{padding-bottom:calc(6px + env(safe-area-inset-bottom,0px))}.btn,.top-btn,.choice-btn,.action-card,.tab-btn,.step-tab,.filter-btn{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.btn{min-height:44px}.choice-btn{min-height:56px;padding-top:12px;padding-bottom:12px}.action-card{min-height:112px}.filter-btn{min-height:34px}.tab-btn{min-height:40px}.modal{max-height:calc(100vh - 20px);max-height:calc(100dvh - 20px);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.modal-body{padding-bottom:8px}.event-text{font-size:14px;line-height:1.8}.event-choices{gap:9px}.planner-cta .btn{min-height:46px;font-size:14px}}@media(max-width:430px){.top-actions{gap:4px}.top-btn{min-height:38px;padding:7px 6px}.action-grid{gap:8px}.modal{padding:18px 14px 14px}.event-portrait-wrap{width:104px}.choice-btn{padding-left:42px}}@media(hover:none){.btn:hover,.choice-btn:hover,.action-card:hover,.person-row:hover{transform:none;box-shadow:none}}
