:root{--sy-ink:#2f2a26;--sy-ink-soft:#6b625a;--sy-paper:#faf6ef;--sy-paper-deep:#f1eadd;--sy-line:#e5dccb;--sy-primary:#c4552d;--sy-primary-deep:#a03f1e;--sy-accent:#e8a13c;--sy-green:#5e8c61;--sy-red:#c0392b;--sy-blue:#4a7ba6;--sy-radius-card:16px;--sy-radius-control:12px;--sy-radius-pill:999px}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Segoe UI,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.visible{visibility:visible}.my-2{margin-top:.5rem;margin-bottom:.5rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-5{margin-bottom:1.25rem}.ml-1{margin-left:.25rem}.mr-1\.5{margin-right:.375rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.contents{display:contents}.hidden{display:none}.h-4{height:1rem}.min-h-screen{min-height:100vh}.w-4{width:1rem}.w-full{width:100%}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.animate-spin{animation:spin 1s linear infinite}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.rounded-card{border-radius:16px}.rounded-control{border-radius:12px}.rounded-full{border-radius:9999px}.rounded-pill{border-radius:999px}.border{border-width:1px}.border-2{border-width:2px}.border-sy-line{border-color:var(--sy-line)}.border-t-sy-primary{border-top-color:var(--sy-primary)}.bg-sy-accent{background-color:var(--sy-accent)}.bg-sy-paper-deep{background-color:var(--sy-paper-deep)}.bg-sy-primary{background-color:var(--sy-primary)}.bg-transparent{background-color:transparent}.bg-white\/70{background-color:hsla(0,0%,100%,.7)}.p-10{padding:2.5rem}.p-5{padding:1.25rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-4{padding-left:1rem;padding-right:1rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pt-3{padding-top:.75rem}.text-center{text-align:center}.font-sans{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Segoe UI,sans-serif}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-normal{font-weight:400}.text-sy-blue{color:var(--sy-blue)}.text-sy-green{color:var(--sy-green)}.text-sy-ink{color:var(--sy-ink)}.text-sy-ink-soft{color:var(--sy-ink-soft)}.text-sy-primary-deep{color:var(--sy-primary-deep)}.text-sy-red{color:var(--sy-red)}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:root{--desk:#ded3b8;--bar:hsla(43,42%,86%,.92);--sheet:#fbf7ea;--sheet-deep:#f1ead8;--sheet-bright:#fffdf7;--edge:#d8caa7;--edge-strong:#b6a682;--ink:#3f3a30;--ink2:#635744;--ink3:#6c6049;--red:#c25454;--red-deep:#9e3838;--gold:#ffd66b;--gold-edge:#ddb74a;--gold-ink:#4f400c;--ok:#286146;--okbg:#e3f1e5;--ok-edge:#b4d8bc;--warn:#9f4631;--warnbg:#fbe9e2;--warn-edge:#e4b6a7;--info:#345a86;--infobg:#e6eef8;--info-edge:#b7cde6;--rule:rgba(96,125,180,.13);--shadow-card:0 1px 2px rgba(63,58,48,.06),0 12px 28px rgba(80,60,30,.11);--shadow-ctrl:0 1px 2px rgba(90,70,30,.09);--ease-out:cubic-bezier(0.16,1,0.3,1)}html{background:var(--desk);-webkit-text-size-adjust:100%;scrollbar-gutter:stable}body{background:radial-gradient(circle at 18% 12%,rgba(255,250,236,.38),transparent 45%),radial-gradient(circle at 86% 80%,hsla(41,28%,65%,.24),transparent 50%),var(--desk);color:var(--ink);font-size:15px;line-height:1.7;font-variant-numeric:tabular-nums}::-moz-selection{background:var(--gold);color:var(--ink)}::selection{background:var(--gold);color:var(--ink)}:focus-visible{outline:2px solid var(--info);outline-offset:2px}a{color:var(--info);text-underline-offset:3px}input,textarea{caret-color:var(--red);accent-color:var(--red)}.mono,code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.gate,.modal,.outline-preview{scrollbar-width:thin;scrollbar-color:var(--edge-strong) transparent}.brandbar{position:sticky;top:0;z-index:50;background:var(--bar);backdrop-filter:blur(10px);border-bottom:1px solid rgba(90,70,30,.16)}.brandbar-in,.wrap{max-width:1180px;margin:0 auto;padding-inline:18px}.brandbar-in{display:flex;align-items:center;gap:14px;min-height:54px;padding-block:8px}.logo{display:inline-flex;align-items:center;gap:9px;color:var(--ink);text-decoration:none;white-space:nowrap}.logo-mark{display:inline-grid;place-items:center;width:32px;height:32px;background:transparent;border:0;border-radius:9px;overflow:hidden}.logo b{font-size:20px;letter-spacing:4px;line-height:1.2}.logo span:not(.logo-mark){font-size:12.5px;color:var(--ink2);padding-left:4px;border-left:1px dashed var(--edge-strong)}.nav{display:flex;gap:4px;margin-left:auto;align-items:center}.nav a,.nav button{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:6px 13px;border:1px solid transparent;border-radius:999px;background:transparent;color:var(--ink2);font-size:13.5px;font-weight:500;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color .15s var(--ease-out),border-color .15s var(--ease-out),color .15s}.nav a:hover,.nav button:hover{background:hsla(0,0%,100%,.65);color:var(--ink)}.nav a[aria-current=page]{background:var(--sheet);border-color:var(--edge);color:var(--ink);font-weight:700;box-shadow:var(--shadow-ctrl)}.page{padding-block:26px 72px}.foot{padding:20px 18px;border-top:1px dashed rgba(90,70,30,.25);color:var(--ink2);font-size:12.5px;text-align:center}.page-loading{display:flex;justify-content:center;padding:64px 16px}.page-loading-card{padding:16px 24px;border:1px solid var(--edge);border-radius:12px}.card,.page-loading-card{background:var(--sheet);box-shadow:var(--shadow-card)}.card{position:relative;margin-bottom:16px;padding:24px;border:1px solid hsla(42,26%,61%,.52);border-radius:14px}.tape:before{content:"";position:absolute;top:-12px;left:50%;width:118px;height:24px;transform:translateX(-50%) rotate(-2deg);background:repeating-linear-gradient(45deg,rgba(255,214,107,.92) 0 9px,rgba(255,227,150,.92) 9px 18px);border-radius:2px;box-shadow:0 2px 5px rgba(0,0,0,.13);pointer-events:none}.narrow{max-width:760px;margin-inline:auto}.title{margin:0;font-size:24px;letter-spacing:1.5px;line-height:1.35;text-wrap:balance}.h3,.title{font-weight:700}.h3{margin:0 0 10px;font-size:16px;letter-spacing:.5px}.sub{margin:4px 0 0;font-size:13.5px;line-height:1.6}.small,.sub{color:var(--ink2)}.small{font-size:13px;line-height:1.55}.muted{color:var(--ink3)}.between{justify-content:space-between;gap:10px}.between,.btnrow{display:flex;flex-wrap:wrap;align-items:center}.btnrow{gap:8px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:7px 15px;background:var(--sheet-bright);border:1.5px solid var(--edge);border-radius:9px;color:var(--ink);font-size:14px;font-weight:700;text-decoration:none;cursor:pointer;box-shadow:var(--shadow-ctrl);transition:transform .15s var(--ease-out),box-shadow .15s var(--ease-out),background-color .15s,border-color .15s}.btn:hover:not(:disabled){transform:translateY(-1px);border-color:var(--edge-strong);background:#fff}.btn:active:not(:disabled){transform:translateY(1px);box-shadow:none}.btn.gold{background:var(--gold);border-color:var(--gold-edge);color:var(--gold-ink)}.btn.gold:hover:not(:disabled){background:#ffdf84;border-color:#cca437}.btn.primary{background:var(--ink);border-color:var(--ink);color:var(--sheet)}.btn.primary:hover:not(:disabled){background:#2f2b23;border-color:#2f2b23}.btn.ghost{background:transparent;border-style:dashed;box-shadow:none}.btn.ghost:hover:not(:disabled){background:hsla(0,0%,100%,.55)}.btn.danger{color:var(--warn);border-color:rgba(159,70,49,.45)}.btn.danger:hover:not(:disabled){background:var(--warnbg);border-color:var(--warn)}.btn.sm{min-height:32px;padding:4px 11px;border-radius:7px;font-size:12.5px}.btn.icon-btn{min-width:34px;min-height:34px;padding:4px 7px}.btn.block{width:100%}.btn:disabled{opacity:.48;cursor:not-allowed;transform:none;box-shadow:none}.pillrow{display:flex;flex-wrap:wrap;gap:8px}.pill{min-height:36px;padding:6px 14px;background:var(--sheet-bright);border:1.5px solid var(--edge);border-radius:999px;color:var(--ink2);font-size:13.5px;font-weight:500;cursor:pointer;transition:border-color .15s,background-color .15s,color .15s}.pill:hover{border-color:var(--edge-strong);color:var(--ink)}.pill[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--sheet);font-weight:700}.tag{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;background:#fff3b0;border-radius:6px;color:#624e07;font-size:12px;font-weight:700;white-space:nowrap}.tag.g{background:var(--okbg);color:var(--ok)}.tag.r{background:var(--warnbg);color:var(--warn)}.tag.b{background:var(--infobg);color:var(--info)}.tag.gray{background:#e9e1cc;color:var(--ink2)}.box{margin:10px 0;padding:11px 14px;border:1px solid transparent;border-radius:10px;font-size:13.5px;line-height:1.6}.box.info{background:var(--infobg);border-color:var(--info-edge);color:#27476d}.box.ok{background:var(--okbg);border-color:var(--ok-edge);color:#21513a}.box.warn{background:var(--warnbg);border-color:var(--warn-edge);color:#7d3625}.box.neutral{background:var(--sheet-deep);border-color:var(--edge);color:var(--ink2)}.box-inline{display:flex;align-items:flex-start;gap:9px}.box-icon{flex:none;margin-top:2px}.text-input{width:100%;min-height:44px;padding:9px 12px;background:#fff;border:1.5px solid var(--edge);border-radius:9px;color:var(--ink);font-size:max(1rem,15px);line-height:1.5;transition:border-color .15s,box-shadow .15s}textarea.text-input{min-height:140px;resize:vertical;line-height:1.65}.text-input:focus{border-color:var(--info);box-shadow:0 0 0 3px rgba(52,90,134,.12);outline:none}.text-input:user-invalid{border-color:var(--warn)}.text-input::-moz-placeholder{color:var(--ink3);opacity:.78}.text-input::placeholder{color:var(--ink3);opacity:.78}.label{display:block;margin-bottom:6px;font-size:13.5px;font-weight:700;color:var(--ink)}.field-hint{display:block;margin-top:5px;font-size:12.5px;color:var(--ink2)}.spinner{display:inline-flex;align-items:center;gap:8px;color:var(--ink2);font-size:13.5px}.spinner i{width:15px;height:15px;border:2px solid var(--edge);border-top-color:var(--red);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.hero{padding:38px 34px 30px;overflow:hidden}.hero:after{content:"";position:absolute;top:-40px;right:-40px;width:230px;height:230px;border:1.5px dashed rgba(194,84,84,.25);border-radius:50%;clip-path:inset(40px 40px 0 0);pointer-events:none}.hero h1{margin:0;font-size:36px;font-weight:700;letter-spacing:4px;line-height:1.38;text-wrap:balance}.hero h1 em{color:var(--red);font-style:normal}.lead{max-width:62ch;margin:12px 0 22px;color:var(--ink2);font-size:15.5px}.roles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:28px;padding-top:20px;border-top:1px dashed var(--edge)}.role-item{display:flex;gap:11px;align-items:flex-start;padding:12px 14px;background:hsla(0,0%,100%,.56);border:1px solid var(--edge);border-radius:10px}.role-icon{display:grid;flex:none;place-items:center;width:32px;height:32px;border-radius:8px;background:var(--sheet-deep);color:var(--red-deep)}.role-item b{display:block;margin-bottom:2px;font-size:14px}.role-item span{display:block;color:var(--ink2);font-size:13px;line-height:1.55}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.style-showcase{padding:14px;background:var(--sheet-bright);border:1px solid var(--edge);border-radius:11px}.thumb{position:relative;height:98px;margin-bottom:11px;padding:12px 14px 12px 30px;overflow:hidden;background:repeating-linear-gradient(180deg,#fff 0 19px,var(--rule) 19px 20px);border:1px solid var(--edge);border-radius:7px}.thumb:before{content:"";position:absolute;top:0;bottom:0;left:20px;width:2px;background:rgba(214,90,90,.3)}.thumb i{display:block;width:74%;height:8px;margin:9px 0;background:var(--mark,#e6dcc2);border-radius:4px}.thumb i:nth-child(2){width:54%}.thumb i:nth-child(3){width:66%}.thumb-sticky{position:absolute;top:8px;right:8px;padding:2px 6px;background:#ffd66b;border:1px solid #ddb74a;border-radius:3px;font-size:10px;font-weight:700;color:#4f400c;transform:rotate(3deg);box-shadow:0 1px 3px rgba(0,0,0,.08)}.thumb-stamp{position:absolute;bottom:8px;right:12px;width:32px;height:32px;display:grid;place-items:center;border:1.5px dashed var(--red);border-radius:50%;color:var(--red);font-size:11px;font-weight:800;transform:rotate(-12deg)}.thumb-stamp.stamp-gold{border-color:#7c5fa8;color:#7c5fa8}.thumb-quest-track{display:flex;align-items:center;gap:6px;margin-bottom:8px}.thumb-quest-node{width:18px;height:18px;display:grid;place-items:center;background:#e9ddff;border:1.5px solid #8a6fb8;border-radius:50%;font-size:10px;font-weight:800;color:#4a2d75}.thumb-quest-node.done{background:#7c5fa8;border-color:#7c5fa8;color:#fff}.thumb-quest-node.now{background:#ffd66b;border-color:#ddb74a;color:#4f400c}.thumb-quest-line{flex:1;height:2px;background:#8a6fb8;opacity:.35}.thumb-quiz-options{display:flex;gap:6px;margin:6px 0}.thumb-pill{padding:1px 7px;background:hsla(0,0%,100%,.85);border:1px solid var(--edge);border-radius:999px;font-size:10.5px;font-weight:700;color:var(--ink2)}.thumb-pill.active{background:var(--okbg);border-color:var(--ok-edge);color:var(--ok)}.login-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,420px);gap:28px;align-items:center;max-width:920px;margin:20px auto 0}.login-intro{padding:12px 8px}.login-intro h1{margin:0;font-size:30px;font-weight:700;letter-spacing:2px;line-height:1.35;text-wrap:balance}.login-intro .lead{margin:10px 0 22px;font-size:15px}.login-points{display:grid;gap:12px;margin:0;padding:0;list-style:none}.login-points li{display:flex;align-items:flex-start;gap:11px;padding:11px 14px;background:hsla(46,68%,95%,.72);border:1px solid hsla(42,26%,61%,.55);border-radius:10px}.login-points-icon{display:grid;flex:none;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--sheet-deep);color:var(--red-deep)}.login-points strong{display:block;font-size:13.5px}.login-points span{display:block;color:var(--ink2);font-size:12.5px;line-height:1.5}.login-card{margin-bottom:0;padding:28px 26px 24px}.login-step-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;margin-bottom:10px;background:var(--sheet-deep);border:1px solid var(--edge);border-radius:999px;color:var(--ink2);font-size:12px;font-weight:700}.login-field{margin-bottom:16px}.login-label-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.login-label-row .label{margin-bottom:0}.link-btn{padding:2px 4px;border:0;background:transparent;color:var(--info);font-size:12.5px;font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.link-btn:hover:not(:disabled){color:var(--ink)}.link-btn:disabled{color:var(--ink3);text-decoration:none;cursor:default}.otp-row{display:flex;gap:8px;align-items:stretch}.otp-row .text-input{flex:1;letter-spacing:3px;font-weight:700}.login-foot-note{margin:16px 0 0;padding-top:12px;border-top:1px dashed var(--edge);color:var(--ink3);font-size:12px;line-height:1.55;text-align:center}.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:16px}.cfg{display:grid;grid-template-columns:minmax(0,1fr) 324px;gap:18px;align-items:start}.summary{position:sticky;top:72px}.quick-start{margin:0 0 24px;padding:15px 16px 16px;background:var(--sheet-deep);border:1px solid var(--edge);border-radius:11px}.quick-start-head{align-items:center;margin-bottom:10px}.quick-start h2{margin:0;font-size:15.5px;font-weight:700;line-height:1.35}.quick-start-link{color:var(--info);font-size:13px;font-weight:700;text-decoration:none}.quick-start-link:hover{text-decoration:underline}.quick-start-empty{margin:0;color:var(--ink2);font-size:13px}.saved-directory-list{display:grid;gap:8px}.saved-directory{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:hsla(0,0%,100%,.86);border:1.5px solid var(--edge);border-radius:9px;color:var(--ink);text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s var(--ease-out)}.saved-directory:hover:not(:disabled){border-color:var(--red);box-shadow:0 3px 10px rgba(80,60,30,.1);transform:translateY(-1px)}.saved-directory.is-active{border-color:var(--ok);background:#f5fbf6}.saved-directory:disabled{cursor:wait;opacity:.72}.saved-directory-icon{display:grid;flex:none;place-items:center;width:30px;height:30px;background:var(--okbg);border-radius:8px;color:var(--ok)}.saved-directory-copy{display:grid;min-width:0;gap:2px;flex:1}.saved-directory-copy b{overflow:hidden;font-size:13.5px;text-overflow:ellipsis;white-space:nowrap}.saved-directory-copy small{color:var(--ink2);font-size:12px}.saved-directory-action{display:inline-flex;align-items:center;gap:4px;flex:none;color:var(--red-deep);font-size:12.5px;font-weight:700;white-space:nowrap}.saved-directory.is-active .saved-directory-action{color:var(--ok)}.cascade-bar{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px;padding:8px 12px;background:var(--sheet-deep);border:1px solid var(--edge);border-radius:9px;font-size:12.5px}.cascade-bar,.cascade-step{align-items:center;color:var(--ink3)}.cascade-step{display:inline-flex;padding:2px 9px;border-radius:6px;background:hsla(0,0%,100%,.75);border:1px solid var(--edge);font-weight:600}.cascade-step.is-filled{background:var(--ink);border-color:var(--ink);color:var(--sheet)}.cascade-sep{color:var(--ink3);opacity:.6}.capture-zone{padding:15px 16px;background:var(--sheet-deep);border:1.5px dashed var(--edge-strong);border-radius:10px;transition:border-color .15s,background-color .15s}.capture-zone.is-dragging{border-color:var(--red);background:rgba(255,243,176,.45)}.capture-empty{margin-top:12px;padding:16px;text-align:center;background:hsla(0,0%,100%,.65);border:1px dashed var(--edge);border-radius:8px}.capture-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}.capture-card{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--sheet-bright);border:1px solid var(--edge);border-radius:9px}.capture-thumb-btn{flex:none;width:48px;height:48px;padding:0;overflow:hidden;border:1px solid var(--edge);border-radius:7px;background:var(--sheet-deep);cursor:pointer}.capture-thumb-btn img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.capture-meta{flex:1;min-width:0}.capture-meta-title{font-size:13px;font-weight:700}.capture-meta-sub,.capture-meta-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.capture-meta-sub{font-size:11.5px;color:var(--ink2)}.capture-actions{display:flex;align-items:center;gap:3px;flex:none}.outline-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:start;margin-top:14px}.outline-editor-col,.outline-preview-col{min-width:0}.outline-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:222px;margin-top:26px;padding:18px;background:hsla(0,0%,100%,.45);border:1.5px dashed var(--edge);border-radius:9px;text-align:center;color:var(--ink3);font-size:13px}.material-note{max-width:62ch;margin:-2px 0 12px}.material-upload-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.material-list{display:grid;gap:8px;margin-top:12px}.material-item{display:flex;align-items:center;gap:10px;padding:9px 12px;background:hsla(0,0%,100%,.72);border:1px solid var(--edge);border-radius:9px}.material-item.is-error{border-color:var(--warn-edge);background:var(--warnbg)}.material-file-icon{display:grid;flex:none;place-items:center;width:34px;height:32px;background:var(--infobg);border-radius:7px;color:var(--info);font-size:10px;font-weight:800;letter-spacing:.3px}.material-copy{display:grid;min-width:0;flex:1;gap:2px}.material-copy b{overflow:hidden;font-size:13.5px;text-overflow:ellipsis;white-space:nowrap}.material-copy small{color:var(--ink2);font-size:12px}.material-remove{flex:none}.kv{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px dashed var(--edge);font-size:13.5px}.kv span{flex:none;color:var(--ink2)}.kv b{font-weight:700;text-align:right;overflow-wrap:anywhere}.section+.section{margin-top:26px;padding-top:22px;border-top:1px dashed var(--edge)}.section-head{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-bottom:14px}.section-head .n{display:inline-grid;flex:none;place-items:center;width:24px;height:24px;background:var(--ink);border-radius:50%;color:var(--sheet);font-size:12px;font-weight:700}.section-head .n.is-done{background:var(--ok);color:#fff}.section-head h2{margin:0;font-size:16px;font-weight:700}.section-head small{color:var(--ink3);font-size:12.5px}.choice{margin-top:14px}.choice-label{margin-bottom:7px;color:var(--ink2);font-size:13px;font-weight:700}.choice-empty{margin:0;padding:6px 0}.units{overflow:hidden;background:hsla(0,0%,100%,.58);border:1.5px solid var(--edge);border-radius:10px}.unit{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px dashed var(--edge);cursor:pointer;font-size:14px}.unit:last-child{border-bottom:0}.unit:hover{background:rgba(255,243,176,.35)}.unit input{flex:none;width:17px;height:17px}.outline-preview{max-height:280px;overflow:auto;background:hsla(0,0%,100%,.62);border:1.5px solid var(--edge);border-radius:9px}.outline-head{position:sticky;top:0;z-index:1;padding:7px 12px;background:var(--sheet-deep);border-bottom:1px dashed var(--edge);color:var(--ink2);font-size:12.5px;font-weight:700}.outline-list{margin:0;padding:4px 0;list-style:none}.outline-row{display:flex;align-items:center;gap:8px;min-height:36px;padding:3px 10px;font-size:13.5px}.outline-badge{flex:none;min-width:34px;padding:1px 6px;background:#ece5d3;border-radius:5px;color:var(--ink2);font-size:11px;font-weight:800;text-align:center}.outline-title{flex:1;min-width:0;overflow-wrap:anywhere}.outline-shift{display:inline-flex;flex:none;gap:4px}.outline-shift .btn{min-width:32px;min-height:30px;padding:2px 7px}.scope-tree .unit{gap:6px;padding-top:7px;padding-bottom:7px;cursor:default}.tree-toggle{display:inline-grid;flex:none;place-items:center;width:28px;height:28px;padding:0;background:transparent;border:0;border-radius:6px;color:var(--ink2);cursor:pointer;transition:transform .15s var(--ease-out),background-color .15s}.tree-toggle:hover{background:rgba(90,70,30,.08)}.tree-toggle[aria-expanded=false]{transform:rotate(-90deg)}.tree-spacer{flex:none;width:28px}.tree-label{display:flex;flex:1;align-items:center;gap:8px;min-width:0;cursor:pointer}.tree-label input{flex:none;width:17px;height:17px}.tree-title{min-width:0;overflow-wrap:anywhere}.styles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.stylecard{position:relative;padding:12px;background:var(--sheet-bright);border:1.5px solid var(--edge);border-radius:10px;text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s var(--ease-out)}.stylecard:hover{border-color:var(--edge-strong);transform:translateY(-1px)}.stylecard[aria-pressed=true]{background:#fff;border-color:var(--red);box-shadow:0 0 0 2px rgba(194,84,84,.16)}.stylecard-swatch{display:flex;align-items:center;gap:6px;height:32px;padding:0 8px;margin-bottom:8px;border-radius:6px;border:1px solid rgba(90,70,30,.12)}.stylecard b{display:block;font-size:14px}.stylecard span{display:block;margin-top:2px;color:var(--ink2);font-size:12px}dialog.modal{width:min(560px,calc(100vw - 28px));max-height:86dvh;padding:24px 26px;background:var(--sheet);border:1px solid var(--edge-strong);border-radius:14px;color:var(--ink);box-shadow:0 24px 60px rgba(0,0,0,.32)}dialog.modal:modal{overscroll-behavior:contain}dialog.modal::backdrop{background:rgba(45,38,26,.52);backdrop-filter:blur(2px);overflow:hidden;overscroll-behavior:contain}.consent{margin:12px 0 14px;padding:12px 14px;background:var(--sheet-deep);border:1px solid var(--edge);border-radius:9px;color:var(--ink2);font-family:inherit;font-size:13px;line-height:1.75;white-space:pre-wrap}.camera-viewport{position:relative;overflow:hidden;border-radius:10px;background:#1c1917;min-height:280px;display:flex;align-items:center;justify-content:center}.camera-viewport video{width:100%;max-height:360px;-o-object-fit:cover;object-fit:cover}.camera-frame{position:absolute;inset:20px;border:2px dashed rgba(255,214,107,.78);border-radius:8px;pointer-events:none;box-shadow:0 0 0 9999px rgba(0,0,0,.25)}.camera-strip{display:flex;gap:8px;overflow-x:auto;padding:8px;margin:10px 0;background:var(--sheet-deep);border:1px solid var(--edge);border-radius:8px}.camera-strip-item{position:relative;flex:none;width:60px;height:60px;border-radius:6px;overflow:hidden;border:1.5px solid var(--edge)}.camera-strip-item img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.camera-strip-label{position:absolute;bottom:0;inset-inline:0;background:rgba(0,0,0,.68);color:#fff;font-size:10px;text-align:center;line-height:15px}.camera-strip-del{position:absolute;top:2px;right:2px;width:18px;height:18px;padding:0;border:0;border-radius:50%;background:rgba(0,0,0,.7);color:#fff;display:grid;place-items:center;cursor:pointer}.preview-stage{display:flex;align-items:center;justify-content:center;padding:10px;background:#1c1917;border-radius:9px}.preview-stage img{max-width:100%;max-height:60dvh;-o-object-fit:contain;object-fit:contain;border-radius:5px}.ladder{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0;padding:0;list-style:none}.ladder li{display:flex;align-items:center;gap:6px;padding-top:9px;border-top:4px solid #e6dcc2;color:var(--ink3);font-size:13.5px;transition:border-color .35s var(--ease-out),color .2s}.ladder li.done{border-color:#4c9a5f;color:var(--ok);font-weight:700}.ladder li.now{border-color:var(--gold-edge);color:var(--ink);font-weight:700}.gate{max-height:330px;margin:12px 0 0;padding:12px 14px;overflow:auto;background:#f5efdd;border-radius:9px;font-family:ui-monospace,Menlo,monospace;font-size:12.5px;line-height:1.9;list-style:none;-moz-column-width:130px;column-width:130px}.gate .ok{color:var(--ok)}.gate .bad{color:var(--warn)}.lesson-grid{display:grid;grid-template-columns:minmax(320px,430px) minmax(0,1fr);gap:18px;align-items:start}.lesson-side{display:grid;gap:16px}.lesson-side .card{margin-bottom:0}.link-box{padding:10px 12px;overflow-wrap:anywhere;background:var(--sheet-deep);border:1px solid var(--edge);border-radius:9px;font-size:13px}.link-box a{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;text-decoration:underline}.stat{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}.stat-tile{padding:11px 13px;background:var(--sheet-deep);border:1px solid var(--edge);border-radius:9px;font-size:13px;color:var(--ink2)}.stat-tile b{color:var(--red-deep);font-size:19px;line-height:1.3}.progress-track{height:7px;margin:8px 0 4px;background:var(--sheet-deep);border:1px solid var(--edge);border-radius:999px;overflow:hidden}.progress-fill{height:100%;background:var(--ok);border-radius:999px;transition:width .35s var(--ease-out)}.err-dist{margin:8px 0 12px}.err-dist h3{margin:0 0 6px;font-weight:700}.err-dist ul{margin:0;padding:0;list-style:none}.err-dist li{display:grid;grid-template-columns:minmax(0,10em) 1fr 3.5em;align-items:center;gap:10px;padding:4px 0;font-size:13px;color:var(--ink2)}.err-dist .bar{display:block;height:8px;min-width:6px;background:var(--red-deep);border-radius:4px;opacity:.72}.err-dist b{text-align:right;color:var(--red-deep)}.err-dist .wrong-list,.history-list{display:flex;flex-direction:column;gap:8px}.history-list{margin:0;padding:0;list-style:none}.history-item{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:12px 14px;background:var(--sheet,#faf7f0);border:1px solid var(--edge,#e5ded0);border-radius:10px;font-size:13px;transition:border-color .15s,box-shadow .15s}.history-item:hover{border-color:var(--edge-strong);box-shadow:var(--shadow-ctrl)}.history-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:2px}.history-title{font-size:14.5px;font-weight:700;color:var(--ink)}.history-main{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.history-meta{display:flex;align-items:baseline;gap:10px;white-space:nowrap;color:var(--ink2,#6b6355)}.history-item .score-good{color:var(--ok,#286146);font-size:15px}.history-item .score-mid{color:var(--red-deep,#9e3838);font-size:15px}.err-dist .wrong-item{display:block;padding:8px 10px;background:var(--sheet,#faf7f0);border:1px solid var(--edge,#e5ded0);border-radius:10px;font-size:13px}.err-dist .wrong-stem{margin:2px 0 4px;font-weight:600;color:var(--ink,#2f2a20);line-height:1.5}.err-dist .wrong-options{margin:0 0 4px;padding-left:18px;color:var(--ink2,#6b6355)}.err-dist .wrong-options li{display:list-item;grid-template-columns:none;padding:0;font-size:13px}.device{overflow:hidden;background:var(--sheet-deep);border:1.5px solid var(--edge-strong);border-radius:14px;box-shadow:0 14px 34px rgba(80,60,30,.18)}.device-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:42px;padding:6px 12px;background:#eee5cd;border-bottom:1px solid var(--edge)}.device-dots{display:inline-flex;gap:5px;margin-right:2px}.device-dots i{display:block;width:9px;height:9px;border-radius:50%;background:#c7ba9c}.device-bar .addr{flex:1;min-width:140px;padding:3px 12px;overflow:hidden;background:#fff;border:1px solid var(--edge);border-radius:999px;color:var(--ink2);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.device-viewport{display:flex;justify-content:center;background:repeating-linear-gradient(135deg,hsla(43,37%,80%,.25) 0 10px,transparent 10px 20px)}.device-viewport iframe{display:block;width:100%;height:740px;border:0;background:var(--sheet);transition:width .25s var(--ease-out)}.device-viewport.is-phone{padding:16px 12px}.device-viewport.is-phone iframe{width:min(390px,100%);height:700px;border:1.5px solid var(--edge-strong);border-radius:18px;box-shadow:0 12px 28px rgba(63,58,48,.16)}.dir-item{display:flex;flex-direction:column;gap:8px;padding:14px 16px;border-bottom:1px dashed var(--edge)}.dir-item:last-child{border-bottom:0}.dir-item-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.dir-tree-panel{margin-top:4px;padding:8px 10px;background:var(--sheet);border:1px solid var(--edge);border-radius:8px;max-height:240px;overflow:auto}@media (max-width:980px){.lesson-grid{grid-template-columns:1fr}}@media (max-width:900px){.cfg{grid-template-columns:1fr}.summary{position:static}.grid3,.login-shell,.roles{grid-template-columns:1fr}.login-shell{gap:16px;margin-top:4px}.login-intro{padding:0}.login-intro h1{font-size:24px}.hero{padding:30px 22px 24px}.hero h1{font-size:28px;letter-spacing:3px}}@media (max-width:780px){.history-item{gap:10px}.history-item,.outline-workspace{grid-template-columns:1fr}.outline-placeholder{min-height:auto;margin-top:0}}@media (max-width:560px){.brandbar-in{gap:8px;padding-inline:12px}.logo b{font-size:18px;letter-spacing:2.5px}.logo span:not(.logo-mark){display:none}.nav a,.nav button{padding:6px 10px;font-size:13px}.card{padding:18px 16px}.quick-start{padding:13px 12px 14px}.saved-directory{align-items:flex-start}.saved-directory-copy b{white-space:normal}.saved-directory-action{padding-top:3px}.material-item{align-items:flex-start}.material-remove{margin-left:auto}.stat,.styles{grid-template-columns:1fr}.device-viewport iframe{height:580px}}@media (pointer:coarse){.btn:not(.sm),.pill{min-height:44px}.nav a,.nav button{min-height:40px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation-duration:0s!important}.spinner i{animation:none}}.section-rule{padding-top:20px;border-top:1px dashed var(--edge)}.nav-user{position:relative}.nav-user-name{max-width:9em;overflow:hidden;text-overflow:ellipsis}.nav-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:168px;display:flex;flex-direction:column;padding:5px;border:1px solid var(--edge);border-radius:14px;background:var(--sheet);box-shadow:var(--shadow-ctrl),0 12px 28px rgba(90,70,30,.14);z-index:60}.nav-menu a,.nav-menu button{display:flex;align-items:center;justify-content:flex-start;gap:9px;min-height:36px;padding:7px 12px;border:0;border-radius:9px;background:transparent;color:var(--ink2);font-size:13.5px;font-weight:500;text-decoration:none;text-align:left;white-space:nowrap;cursor:pointer}.nav-menu a:hover,.nav-menu a[aria-current=page],.nav-menu button:hover{background:rgba(255,253,245,.9);color:var(--ink)}.nav-menu a[aria-current=page]{font-weight:700;box-shadow:none}.nav-menu-danger{color:#a2542f}.nav-menu-danger:hover{background:rgba(190,90,45,.09);color:#8a3f1e}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.hover\:border-sy-primary:hover{border-color:var(--sy-primary)}.hover\:bg-sy-primary-deep:hover{background-color:var(--sy-primary-deep)}.hover\:brightness-95:hover{--tw-brightness:brightness(.95);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}