:root{color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#ddc095;color:#342820;font-family:system-ui,-apple-system,"Noto Sans TC","Microsoft JhengHei",sans-serif;font-size:15px;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.46}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #438cc0;outline-offset:2px}#app{min-height:100vh;background-color:#faedd4;background-image:radial-gradient(#caa77d45 .8px,transparent 1px),linear-gradient(115deg,#fff1d8,#f3dcb9);background-size:17px 17px,auto}.shell{max-width:1430px;margin:auto;padding:14px 17px 30px}.head{display:flex;align-items:center;gap:14px;border-bottom:4px double #ab7951;padding:3px 3px 14px;margin-bottom:16px}.logo{width:65px;height:65px;border:3px solid #8e6143;background:#f5d6a3;display:grid;place-items:center;box-shadow:3px 3px 0 #bb8f60}.logo svg{height:51px;width:51px;image-rendering:pixelated}.brand{flex:1}.brand h1{font-size:clamp(22px,3.5vw,35px);line-height:1.17;margin:0;letter-spacing:2px;text-shadow:2px 2px #ecd2a9}.brand p{margin:2px 0 0;font-size:11px;font-weight:750;color:#8d6241;letter-spacing:2px}.timebox{min-width:130px;box-shadow:2px 2px 0 #d3ac78;border:2px dashed #c8a16c;background:#fff8e8;padding:6px 12px;text-align:center}.timebox b{display:block;font-size:25px;color:#774232;font-weight:950;line-height:1.16}.timebox small{color:#8e7055;font-size:11px}.card{background:#fff7e9;border:2px solid #cfa878;box-shadow:3px 3px 0 #dfbb88;padding:12px;margin-bottom:13px;position:relative}.card h2{font-size:19px;margin:0 0 10px}.card h3{font-size:15px;margin:0 0 8px}.eyebrow{color:#99724d;text-transform:uppercase;font-size:11px;font-weight:900;letter-spacing:.8px}.muted{color:#856e5a;font-size:12px}.thickline{height:4px;background:repeating-linear-gradient(90deg,#b98b5f 0 14px,#f4e3c9 14px 18px);margin:10px 0}.board{display:grid;grid-template-columns:minmax(205px,270px) minmax(400px,1fr) minmax(220px,275px);gap:14px;align-items:start}.portrait{display:flex;align-items:center;gap:10px}.avatar{width:99px;height:106px;background:#b8d8d5;border:3px solid #be8e5a;flex-shrink:0;box-shadow:2px 2px #ddbd92}.avatar svg{width:100%;height:100%;image-rendering:pixelated}.portrait strong{font-size:20px;letter-spacing:1px}.pill{display:inline-block;background:#e4d2b4;border:1px solid #c09b71;color:#634a35;padding:2px 6px;border-radius:2px;font-size:11px;font-weight:850;margin:3px 2px 0 0}.valuebox{display:flex;justify-content:space-between;gap:8px;align-items:baseline;border-bottom:1px dashed #ddc9ac;padding:5px 0;font-size:12px}.valuebox strong{font-size:13px}.mini-stats{display:grid;grid-template-columns:1fr 1fr;gap:6px}.stat-tile{background:#f2e4cb;border:1px solid #e0c5a1;padding:7px}.meter{height:8px;background:#e4d2b5;border:1px solid #cab18f;margin:4px 0 0;overflow:hidden}.meter i{display:block;height:100%;background:#6a9ea2}.badge{font-weight:850;font-size:11px;background:#ead5b6;border:1px solid #b79366;padding:4px 7px;color:#795338}.rightline{display:flex;justify-content:space-between;gap:8px;align-items:center}.panel-title{display:flex;align-items:center;gap:7px;font-size:15px;font-weight:950;border-bottom:2px solid #c8a179;padding-bottom:8px;margin-bottom:11px}.subnote{background:#f5e6ce;border-left:4px solid #b48258;padding:9px 10px;font-size:12px;line-height:1.55}.subnote.warning{background:#fbe1d5;border-color:#b04c45}.main-card{padding:14px}.main-card h2{font-size:24px;line-height:1.25;letter-spacing:.6px;margin:5px 0 7px}.main-copy{font-size:14px;line-height:1.85;color:#644d37}.scene{height:230px;background:#98cfdd;overflow:hidden;border:3px solid #bc9266;box-shadow:inset 0 0 0 2px #f0cda0;margin-bottom:12px}.scene svg{height:100%;width:100%;object-fit:cover;display:block;image-rendering:pixelated}.btn{border:2px solid #6f402e;color:#fff4df;background:#8b5439;padding:11px 16px;font-weight:950;letter-spacing:1px;box-shadow:3px 3px 0 #c4a078;border-radius:1px}.btn:hover:not(:disabled){filter:brightness(1.08)}.btn.secondary{border-color:#a77c56;background:#eddbbb;color:#764c31}.btn.ghost{border-color:#bda27c;background:#fff4e0;color:#6b4e38}.btn.sm{padding:6px 9px;font-size:12px}.btn.wide{width:100%}.actions{display:grid;gap:9px}.choice{width:100%;text-align:left;background:#fffcf4;border:2px solid #d5b895;padding:11px;display:flex;gap:10px;align-items:flex-start;box-shadow:2px 2px 0 #e9d4b1}.choice:hover:not(:disabled){border-color:#936b45;background:#ffefcf}.choice.selected{border-color:#8a5736;background:#f1dfbb;box-shadow:3px 3px 0 #cf9d62}.choice .bubble{width:28px;height:28px;border:2px solid #c7a177;background:#f9edda;flex-shrink:0;font-weight:950;display:grid;place-items:center;color:#6e4c36}.choice.selected .bubble{background:#80503a;color:#fff8e5}.choice strong{display:block;font-size:14px;margin-bottom:2px}.choice p{margin:0;font-size:12px;color:#85664a}.preview{margin:12px 0;padding:11px;border:1px dashed #bb9166;background:#f8ebd6}.preview h3{margin-bottom:5px}.preview small{display:block;color:#946b4b;margin-top:4px}.result-banner{background:#ebf0df;border:2px solid #91a47e;padding:12px;margin:11px 0}.result-banner h3{color:#567051}.diff{display:flex;flex-wrap:wrap;gap:6px;margin:7px 0}.chip{font-size:12px;font-weight:850;background:#e3ead5;color:#396747;border:1px solid #9cb18a;padding:4px 8px}.chip.bad{background:#f1ddd3;color:#a7523e;border-color:#c79b82}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.field{display:flex;flex-direction:column;gap:4px}.field label{font-size:12px;font-weight:850;color:#704e35}.field input,.field select,textarea{background:#fffdf4;color:#493526;border:1.5px solid #bd9b73;border-radius:0;padding:9px;max-width:100%;width:100%}.field input:disabled{background:#efe0c7}.allocation{display:grid;grid-template-columns:1fr 98px;align-items:center;gap:9px;padding:9px;background:#f7ead4;margin:6px 0;border:1px solid #ddc3a3}.allocation b{font-size:13px}.allocation small{display:block;font-size:11px;color:#886b4e}.allocation input{padding:7px;text-align:center;background:#fffaf0;border:1px solid #b48e60;width:100%}.total{font-size:16px;font-weight:950;color:#457e69}.total.invalid{color:#b34439}.rank{display:grid;grid-template-columns:minmax(0,1fr) 42px 47px;gap:4px;border-bottom:1px dashed #e0c6a3;padding:8px 1px;font-size:12px;align-items:center}.dot{width:10px;height:10px;display:inline-block;margin-right:5px;border:1px solid #75583f}.tiny{font-size:11px;color:#8b6d52}.partybar{height:16px;display:flex;gap:2px;background:#cdb38b;margin:8px 0}.partybar i{height:100%}.news{border-top:1px dashed #cfb48c;padding:10px 0;font-size:12px}.news strong{display:block;margin-bottom:3px}.scroll{max-height:320px;overflow:auto}.foot{color:#856a51;font-size:11px;margin:20px 3px;text-align:center;line-height:1.6}.smalllinks{display:flex;gap:5px;flex-wrap:wrap}.details{border:1px solid #d1af89;background:#f9ecd9;margin:9px 0;padding:8px}.details summary{font-weight:850;font-size:12px;cursor:pointer}.details p,.details li{font-size:12px;color:#725940}.progress-step{display:flex;gap:5px;margin:10px 0}.progress-step span{flex:1;background:#dfc4a2;height:8px}.progress-step span.active{background:#8b5439}.progress-step span.done{background:#668f7f}.overline{font-size:11px;font-weight:900;letter-spacing:1.5px;color:#86613d}.creator{max-width:1060px;margin:auto;display:grid;grid-template-columns:1fr 1.1fr;gap:18px;align-items:start}.creator-poster{min-height:545px;background:#c9a778;border:5px solid #805337;padding:14px;display:flex;flex-direction:column;justify-content:center;text-align:center}.creator-poster h2{font-size:clamp(25px,4vw,37px);margin:6px 0;color:#563620}.creator-poster p{font-size:13px;color:#704e32}.creator-poster .scene{height:240px}.rule{font-size:12px;color:#8a5e41}.notice-error{padding:8px;background:#f8e1da;border:1px solid #bf7060;color:#a04a3a;font-weight:750;font-size:12px;margin:10px 0}.overlay{position:fixed;inset:0;background:#21160ab8;z-index:15;display:flex;align-items:center;justify-content:center;padding:15px}.modal{width:min(650px,100%);max-height:90vh;overflow:auto;background:#fff1d8;border:4px solid #a47349;box-shadow:8px 9px #35231a;padding:16px}.modal textarea{width:100%;font-family:monospace;font-size:11px;min-height:150px}.modal p{font-size:13px;color:#73553d;line-height:1.6}.modal .btn{margin:4px 3px 4px 0}.hidden{display:none!important}.narrow-note{margin:6px 0;font-size:11px;color:#80654f}.version{display:inline-block;background:#725139;color:#fff0cf;padding:4px 7px;font-size:10px;font-weight:900;letter-spacing:1px}.skip{text-decoration:underline;color:#825f41;cursor:pointer;background:none;border:0;padding:4px;font-size:12px}@media(max-width:1100px){.board{grid-template-columns:220px minmax(0,1fr)}.side-right{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:13px}.side-right>.card{margin:0}.creator{grid-template-columns:1fr 1.3fr}}@media(max-width:710px){.shell{padding:9px}.head{gap:7px;padding-bottom:9px}.logo{width:43px;height:43px}.logo svg{width:35px;height:35px}.brand h1{font-size:19px;letter-spacing:0}.brand p{font-size:9px;letter-spacing:0}.timebox{min-width:76px;padding:5px}.timebox b{font-size:19px}.timebox small{font-size:9px}.board{display:flex;flex-direction:column}.main{order:1;width:100%}.side-left{order:2;width:100%}.side-right{order:3;width:100%;display:block}.creator{display:flex;flex-direction:column}.creator-poster{width:100%;min-height:0}.creator-poster .scene{height:170px}.card{padding:11px}.scene{height:195px}.main-card h2{font-size:20px}.grid-2{gap:6px}.choice{padding:9px}.card h2{font-size:18px}}@media(max-width:390px){.grid-2{grid-template-columns:1fr}.timebox{min-width:75px}.brand h1{font-size:17px}}


/* rc2: local pixel presentation and allocation controls */
.card,.btn,.choice,.stat-tile,.pill,.chip,.badge,.modal,input,select,textarea{border-radius:0}
.card{border:3px solid #79553e;box-shadow:4px 4px 0 #b18b60,inset 0 0 0 2px #f4dbaf}
.btn{box-shadow:4px 4px 0 #503c31,inset 2px 2px 0 #bc8962;transition:none}
.btn:active{transform:translate(2px,2px);box-shadow:2px 2px 0 #503c31}
.choice{border:2px solid #99754f;box-shadow:2px 2px 0 #ceb080}
.choice.selected{outline:2px solid #405b60;outline-offset:2px}
.panel-title{border-bottom:4px double #79553e}
.avatar{border:3px solid #513d32;box-shadow:3px 3px 0 #b18b60;height:114px;width:102px}
.avatar svg{display:block;image-rendering:pixelated}
.creator-preview{display:flex;align-items:center;gap:16px;margin:0 0 18px;font-weight:700}
.dot,.bubble{border-radius:0!important}
.allocation{display:grid;grid-template-columns:minmax(120px,1fr) minmax(80px,1fr) 48px;gap:10px;align-items:center}
.allocation input[type=range]{appearance:none;width:100%;min-width:0;height:14px;padding:0;background:#d6bd94;border:2px solid #79553e;cursor:pointer}
.allocation input[type=range]::-webkit-slider-thumb{appearance:none;width:18px;height:26px;background:#44666c;border:3px solid #2e4048;box-shadow:2px 2px 0 #b18b60}
.allocation input[type=range]::-moz-range-thumb{width:14px;height:22px;border-radius:0;background:#44666c;border:3px solid #2e4048}
.allocation output{font-weight:800;font-variant-numeric:tabular-nums;text-align:right}
@media(max-width:480px){.allocation{grid-template-columns:minmax(105px,1fr) minmax(65px,1fr) 42px;gap:6px}}

/* rc3: shared portrait frame; remaining rules are creator-scoped. */
.avatar{width:126px;height:150px;padding:0;background:#f8ecd3;border:3px solid #79553e;box-shadow:3px 3px 0 #c3a276}
.avatar svg{width:120px;height:144px;max-width:none;display:block;image-rendering:pixelated}
.creator{--form-ink:#493526;--form-muted:#785c43;--form-border:#9b7753;--form-fill:#fffaf0;--form-gap:16px;--control-height:44px;--form-body:14px}
.creator>.card:not(.creator-poster){width:100%;min-width:0;padding:20px}
.creator .panel-title{font-size:18px;font-weight:800;line-height:1.4;margin:0 0 18px;padding-bottom:12px;color:var(--form-ink)}
.creator .creator-preview{margin:0 0 24px;gap:20px;min-height:150px;font-size:14px;line-height:1.5;color:var(--form-ink)}
.creator .creator-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--form-gap);align-items:start}
.creator .field{min-width:0;gap:6px;margin:0}
.creator .field label{font-size:13px;font-weight:750;line-height:20px;color:var(--form-ink);margin:0}
.creator .field input,.creator .field select{display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;height:var(--control-height);min-height:var(--control-height);margin:0;padding:0 10px;border:2px solid var(--form-border);border-radius:0;background-color:var(--form-fill);color:var(--form-ink);font-family:inherit;font-size:var(--form-body);font-weight:500;line-height:normal;box-shadow:inset 2px 2px 0 #ecdec6}
.creator .field input[type=date]{appearance:none;-webkit-appearance:none}
.creator .field input[type=date]::-webkit-date-and-time-value{text-align:left}
.creator .field input[type=date]::-webkit-datetime-edit{padding:0}
.creator .smalllinks{gap:10px;margin-top:16px!important}
.creator .btn{min-height:var(--control-height);font-size:14px;font-weight:800;line-height:20px;padding:10px 14px}
.creator .subnote,.creator .narrow-note,.creator .notice-error{font-size:12px;line-height:1.65;font-weight:500;color:var(--form-muted)}
.creator .subnote{padding:12px;margin:20px 0!important}
.creator .notice-error{color:#953f32;font-weight:700;padding:12px;border-width:2px;margin:16px 0}
.creator .narrow-note{margin:16px 0 0}
.creator-poster h2{line-height:1.35;font-weight:800}
@media(max-width:390px){.creator .creator-fields{grid-template-columns:minmax(0,1fr)}}

.creator .field-label{font-size:13px;font-weight:750;line-height:20px;color:var(--form-ink)}
.creator .seed-action .btn{height:var(--control-height);margin:0}


/* rc4 approved raster portraits: fixed uncropped framing, no filter. */
.avatar{width:126px;height:180px;background:#faf0dc;overflow:hidden}
.avatar .portrait-image{display:block;width:120px;height:174px;object-fit:contain;image-rendering:pixelated;filter:none}
.creator .creator-preview{min-height:180px;align-items:center}
.creator .creator-preview>div:last-child{min-width:0}
.creator .field input,.creator .field select{vertical-align:middle;letter-spacing:normal}
.creator .field select{padding-right:24px}
.creator .field input::placeholder{font-size:inherit;color:#8d7b69}
.creator .smalllinks .btn{margin:0;min-width:140px}
.creator>.card:not(.creator-poster){--form-gap:16px}
.portrait{flex-wrap:wrap}
.portrait>div:last-child{min-width:110px;flex:1}
