:root{color-scheme:light;--bg:#f7f3ec;--panel:#fffcf6;--ink:#1d1a16;--soft-ink:#5c564c;--muted:#948b7c;--line:#e6dfd1;--line-dark:#cec5b2;--fill:#f2ece0;--rail:#d6cdb9;--accent:#c04a2e;--accent-ink:#fff8f2;--accent-soft:rgba(192,74,46,.09);--danger:#a93318;--good:#2e6a4d;--good-soft:rgba(46,106,77,.09);--wash:rgba(192,74,46,.07);--mono:"SF Mono","Menlo","Consolas",monospace;--sans:"Avenir Next","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;--serif:Georgia,"Songti SC","STSong",serif;font-family:var(--sans)}[data-theme=dark]{color-scheme:dark;--bg:#14110f;--panel:#1c1815;--ink:#f4eee2;--soft-ink:#b3a795;--muted:#7d7263;--line:#2b2621;--line-dark:#3b342c;--fill:#221d18;--rail:#332c24;--accent:#e37a58;--accent-ink:#1a1410;--accent-soft:rgba(227,122,88,.13);--danger:#f0836a;--good:#6fc394;--good-soft:rgba(111,195,148,.12);--wash:rgba(227,122,88,.08)}*{box-sizing:border-box}html{min-height:100%}body,html{background:var(--bg)}body{min-height:100vh;margin:0;color:var(--ink);background-image:radial-gradient(1100px 560px at 12% -8%,var(--wash),transparent 62%);background-repeat:no-repeat;font-family:var(--sans);overflow-x:hidden;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.52}h1,h2,h3,p{margin:0}h1,h2,h3{color:var(--ink);font-family:var(--serif);font-weight:800;letter-spacing:0}a{color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.9}.block-heading span,.eyebrow,.field-label,.mono,.preview-toolbar p,.stat span{color:var(--muted);font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.3em;text-transform:uppercase}.status{min-height:20px;margin:0;color:var(--muted);font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.08em;line-height:1.6}.status.error{color:var(--danger)}.btn,.chip,.icon-button,.primary-button,.segmented button{min-height:44px;border:1px solid var(--line-dark);border-radius:0;color:var(--ink);background:var(--panel);transition:background .14s ease,color .14s ease,border-color .14s ease}.btn:hover,.chip:hover,.icon-button:hover,.segmented button:hover{border-color:var(--ink);background:var(--ink);color:var(--bg)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:0 18px;font-size:15px;font-weight:800;letter-spacing:.08em;white-space:nowrap}.btn.solid,.primary-button{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.btn.solid:hover,.primary-button:hover{border-color:var(--accent);background:transparent;color:var(--accent)}.btn.wide{width:100%;height:52px;font-size:17px}.icon-button{display:inline-grid;place-items:center;width:46px;height:46px;padding:0}.icon-button svg{width:19px;height:19px}.text-btn{padding:0;border:0;background:transparent;color:var(--muted);font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;transition:color .14s ease}.text-btn:hover{color:var(--ink)}.theme-toggle{position:fixed;top:14px;right:14px;z-index:40;display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 12px;border:1px solid var(--line-dark);border-radius:0;background:var(--panel);color:var(--soft-ink);font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;transition:background .14s ease,color .14s ease,border-color .14s ease}.theme-toggle:hover{border-color:var(--ink);background:var(--ink);color:var(--bg)}.theme-toggle svg{width:16px;height:16px}input:not([type]),input[type=number],input[type=password],input[type=text],select,textarea{min-width:0;width:100%;border:1px solid var(--line);border-radius:0;color:var(--ink);background:var(--panel);outline:0;padding:0 13px;transition:border-color .14s ease}input:not([type]),input[type=number],input[type=password],input[type=text],select{height:46px;font-size:16px}input:focus,select:focus,textarea:focus{border-color:var(--ink)}input::placeholder,textarea::placeholder{color:var(--muted)}textarea{min-height:260px;padding:12px 13px;line-height:1.8;resize:vertical}select,textarea{font-family:var(--mono);font-size:14px}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:34px;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 17px) 20px,calc(100% - 12px) 20px;background-size:5px 5px,5px 5px;background-repeat:no-repeat}.field{display:grid;grid-gap:9px;gap:9px}.app-shell{display:grid;min-height:100vh;grid-template-columns:420px minmax(0,1fr)}.control-rail{display:grid;align-content:start;max-height:100vh;overflow-y:auto;overscroll-behavior:contain;border-right:1px solid var(--line);background:var(--panel)}.fold,.main-panel .fold{border-bottom:1px solid var(--line)}.main-panel .fold{border:1px solid var(--line);background:var(--panel)}.main-panel .split .fold{border-bottom:1px solid var(--line)}.fold-head{display:flex;align-items:center;gap:13px;width:100%;padding:16px 22px;border:0;border-radius:0;background:transparent;color:inherit;text-align:left;transition:background .14s ease,color .14s ease}.fold-head:hover{background:var(--fill)}.fold-mark{position:relative;flex:none;width:11px;height:11px;border:1px solid var(--line-dark);background:var(--panel);transition:border-color .14s ease,background .14s ease}.fold-mark:after,.fold-mark:before{content:"";position:absolute;background:var(--soft-ink);transition:opacity .16s ease,transform .16s ease}.fold-mark:before{left:2px;right:2px;top:4px;height:1px}.fold-mark:after{top:2px;bottom:2px;left:4px;width:1px}.fold-head:hover .fold-mark{border-color:var(--accent)}.fold-head:hover .fold-mark:after,.fold-head:hover .fold-mark:before{background:var(--accent)}.fold[data-open=true] .fold-mark:after{opacity:0;transform:scaleY(.3)}.fold-title{display:flex;flex:1 1;min-width:0;align-items:baseline;justify-content:space-between;gap:14px}.fold-title strong{color:var(--soft-ink);font-size:18px;font-weight:700;white-space:nowrap}.fold-title h2{font-family:var(--serif);font-size:25px;font-weight:800}.fold-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .24s cubic-bezier(.2,.7,.3,1)}.fold[data-open=true] .fold-body{grid-template-rows:1fr}.fold-inner{min-height:0;overflow:hidden}.fold-pad{display:grid;grid-gap:14px;gap:14px;padding:2px 22px 22px}.people-wrap,.points-wrap{overflow-y:auto;overscroll-behavior:contain}.points-wrap{max-height:46vh}.people-wrap{max-height:34vh}@media (max-width:900px){.control-rail{overflow:visible}.control-rail,.people-wrap,.points-wrap{max-height:none}}@media (prefers-reduced-motion:reduce){.fold-body,.fold-mark:after,.fold-mark:before{transition:none}}.control-block{display:grid;grid-gap:15px;gap:15px;padding:26px 22px 28px;border-bottom:1px solid var(--line)}.block-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.block-heading strong{color:var(--soft-ink);font-size:19px;font-weight:700;white-space:nowrap}.main-panel{min-width:0;overflow:hidden}.studio-stage{display:grid;grid-gap:18px;gap:18px;align-content:start;padding:40px 56px 56px}.preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:58px;border-bottom:1px solid var(--line)}.preview-toolbar p{font-size:15px;letter-spacing:.24em}.sheet{width:min(560px,calc(100% - 32px));margin:56px auto 64px;border:1px solid var(--line);background:var(--panel)}.sheet-head{display:grid;grid-gap:12px;gap:12px;padding:30px 28px 26px;border-bottom:1px solid var(--line)}.sheet-head h1{font-size:clamp(38px,10vw,54px);line-height:1.02}.lede{color:var(--soft-ink);font-size:15px;line-height:1.6}.sign-form{display:grid;grid-gap:16px;gap:16px;padding:26px 28px 28px}.sign-form .field{gap:11px}.sign-form input{height:54px;font-size:22px;font-family:var(--serif);font-weight:700}.sheet-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 28px;border-top:1px solid var(--line)}.sheet-foot a{color:var(--soft-ink);font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;transition:color .14s ease}.sheet-foot a:hover{color:var(--ink)}.notice{display:grid;grid-gap:8px;gap:8px;padding:26px 28px;color:var(--soft-ink);font-size:15px;line-height:1.7}.stamp-wrap{display:grid;justify-items:center;grid-gap:18px;gap:18px;padding:46px 28px 44px;text-align:center}.stamp{display:grid;place-items:center;width:132px;height:132px;border:5px solid var(--accent);background:var(--accent-soft);color:var(--accent);font-family:var(--serif);font-size:42px;font-weight:800;letter-spacing:.06em;animation:stamp .38s cubic-bezier(.16,1.2,.3,1) both}.stamp.done{border-color:var(--good);background:var(--good-soft);color:var(--good)}.stamp-name{font-family:var(--serif);font-size:38px;font-weight:800}.stamp-meta{color:var(--soft-ink);font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.18em}@keyframes stamp{0%{opacity:0;transform:scale(1.28)}to{opacity:1;transform:scale(1)}}.stats{display:flex;gap:26px;margin-top:16px}.stat b{display:block;font-family:var(--serif);font-size:clamp(40px,7vw,62px);font-weight:800;line-height:.88;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat span{display:block;margin-top:8px;letter-spacing:.22em}.stat.warn b{color:var(--danger)}.panel{border:1px solid var(--line);background:var(--panel)}.panel-body{padding:6px 22px 18px}.person{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line)}.person:first-child{border-top:0}.person strong{font-family:var(--serif);font-size:19px;font-weight:700}.person .who{flex:1 1;min-width:0}.person .when{font-family:var(--mono);font-size:13px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--soft-ink)}.person .reason{flex:1 1;min-width:0;overflow:hidden;color:var(--muted);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.quiet{padding:16px 0;color:var(--muted);font-size:14px}.split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:18px;gap:18px}.qr-card{display:grid;grid-gap:10px;gap:10px;justify-items:center;padding:16px;border:1px solid var(--line);background:var(--panel)}.qr-card img{width:168px;height:168px;display:block;image-rendering:pixelated}.qr-card p{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase}.link-line,.qr-card p{font-family:var(--mono)}.link-line{overflow-wrap:anywhere;color:var(--soft-ink);font-size:12px;letter-spacing:.04em}.points{width:100%;border-collapse:collapse}.points th{padding:0 8px 10px;color:var(--muted);font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;text-align:left}.points td.num,.points td.rank,.points th:not(:nth-child(2)){text-align:right}.points th:first-child{width:2.4em}.points th:nth-child(3),.points th:nth-child(4),.points th:nth-child(5){width:4em}.points td{padding:10px 8px;border-top:1px solid var(--line)}.points tr.zero td{color:var(--muted)}.points .num,.points .rank{font-family:var(--mono);font-size:14px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.points .rank{color:var(--muted)}.points tbody tr:first-child:not(.zero) .rank{color:var(--accent);font-weight:700}.points .pts-name{font-family:var(--serif);font-size:18px;font-weight:700}.points .total{font-size:17px;font-weight:800}.bonus{display:grid;grid-gap:12px;gap:12px;padding:18px;border:1px solid var(--line);background:var(--fill)}.log-title{margin:24px 0 6px;font-size:19px}.login{width:min(440px,calc(100% - 32px));margin:16vh auto;border:1px solid var(--line);background:var(--panel)}.login .sheet-head{padding-bottom:22px}.login form{display:grid;grid-gap:16px;gap:16px;padding:24px 28px 28px}.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:50;padding:13px 20px;border:1px solid var(--ink);background:var(--ink);color:var(--bg);font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.16em}.grid-2{display:grid;grid-template-columns:1.3fr .9fr;grid-gap:14px;gap:14px}.btn-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}@media (max-width:1080px){.app-shell{grid-template-columns:360px minmax(0,1fr)}.studio-stage{padding-left:32px;padding-right:32px}}@media (max-width:900px){.app-shell{display:flex;flex-direction:column}.control-rail{order:2;border-right:0;border-top:1px solid var(--line)}.main-panel{order:1}.studio-stage{padding:30px 20px 0}.grid-2,.split{grid-template-columns:1fr}}@media (max-width:620px){.control-block,.notice,.sheet-foot,.sheet-head,.sign-form,.stamp-wrap{padding-left:18px;padding-right:18px}.panel-body,.studio-stage{padding-left:16px;padding-right:16px}.sheet{margin-top:66px}.login{margin-top:12vh}.theme-toggle span{display:none}.theme-toggle{padding:0 10px}.stats{gap:18px}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}@media print{.bonus,.btn,.control-rail,.preview-toolbar,.sheet-foot,.text-btn,.theme-toggle,.toast{display:none!important}body{background:#fff}.app-shell{display:block}.panel,.points{page-break-inside:avoid;break-inside:avoid}}