*{box-sizing:border-box}body{margin:0;background:#f5f0e4;color:#322c25;font:16px/1.65 system-ui,-apple-system,sans-serif}main{max-width:1180px;margin:auto;padding:22px 28px 14px}header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:18px;border-bottom:1px solid #d7ceba}.brand{color:#345d50;text-decoration:none;letter-spacing:.16em;font-size:16px;font-weight:850}.brand span{display:block;font-size:8px;letter-spacing:.2em;color:#7c806d;margin-top:1px}button{font:inherit;font-weight:700;background:#fdf9ef;border:1px solid #c6bda8;color:#3c493e;padding:12px 18px;min-height:46px;border-radius:8px;cursor:pointer;touch-action:manipulation;transition:background .15s,transform .1s}button:hover{background:#e8e3d4}button:active{transform:translateY(1px)}button.primary{background:#346c59;border-color:#346c59;color:#fff9e7}button.primary:hover{background:#275743}button.quiet{background:transparent}.large{width:100%;font-size:17px;padding:15px 22px}button:focus-visible,a:focus-visible{outline:3px solid #ca7047;outline-offset:3px}button:disabled{opacity:.45;cursor:default}.welcome{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:45px;padding:30px 0 22px}.eyebrow{font-size:10px;letter-spacing:.15em;font-weight:700;color:#8b6343;margin:0 0 10px}h1{font:750 clamp(30px,3.5vw,48px)/1.35 Georgia,'Yu Mincho',serif;letter-spacing:-.025em;margin:10px 0 18px}#tagline{color:#6e6a5b;font-size:15px;max-width:440px}.hero-pizza{position:relative}.hero-pizza canvas{display:block;width:100%;height:auto;border-radius:50%;transform:rotate(-5deg);box-shadow:0 14px 28px #89724622}.stamp{position:absolute;bottom:16px;right:5px;background:#b95738;color:#fff8dd;border:3px double #f7d9ac;border-radius:50%;width:75px;height:75px;display:grid;place-content:center;text-align:center;font:800 16px/1.1 Georgia;transform:rotate(12deg);letter-spacing:.07em}.servings{margin:20px 0 16px;display:flex;gap:18px;align-items:center;font-size:14px}.servings>div{display:flex;gap:7px}.servings button{min-width:48px;min-height:42px;padding:7px 14px}.servings button.selected{background:#e4dfce;border-color:#547866;color:#2b5d47}.mode-heading{display:flex;justify-content:space-between;align-items:center;gap:15px}.mode-heading h2{font-size:18px}.mode-heading>span{font-size:12px;color:#756c58}.modes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.mode-card{min-width:0;text-align:left;padding:17px;display:flex;flex-direction:column;align-items:flex-start;border-color:#d3c8b3}.mode-card.selected{background:#ebeddf;border:2px solid #53755d;padding:16px}.mode-card .number{font-size:10px;letter-spacing:.12em;color:#a07856;margin-bottom:8px}.mode-card strong{font-size:19px;color:#354c3a;line-height:1.4}.mode-card small{font-size:11px;color:#8a7258;margin:3px 0 10px}.mode-card p{font-size:12px;line-height:1.6;font-weight:400;color:#706853;margin:0}.best{font-size:12px;color:#6a775b;margin:12px 0}.game-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 12px}.game-top p{margin:0}.game-top h2{font-size:22px;line-height:1.3;margin:3px 0}.play-layout{display:grid;grid-template-columns:minmax(280px,560px) minmax(240px,1fr);gap:32px}.hud{display:flex;gap:8px;justify-content:space-between;margin:0 0 8px;font-size:12px;color:#665f4e}.hud span{padding:5px 8px;background:#e9e3d5;border-radius:5px}.board-wrap{padding:7px;background:#d4b98e;border:1px solid #bba27e;border-radius:17px;box-shadow:0 12px 22px #6d543d1a}#board{display:block;width:100%;height:auto;touch-action:none;border-radius:11px}aside{padding-top:20px}aside h3{font-size:21px;line-height:1.4;margin:6px 0 14px}aside p{font-size:14px;color:#716650;line-height:1.8}.rule{padding:14px;border-radius:8px;background:#eae6d8;border-left:3px solid #9ca983;font-size:12px}.notice{font-size:12px;color:#8b5938;min-height:20px;line-height:1.5;margin:10px 0 0}.actions{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.actions button{flex:1 1 140px;font-size:13px;padding:12px 10px}.score{display:flex;align-items:baseline;gap:7px;line-height:1.1;margin:5px 0 10px;color:#356750}.score strong{font:700 82px/1 Georgia,serif}.score span{font-size:20px;color:#82745e}#result.fail .score{color:#b45939}.fine{font-size:10px!important;color:#8e8269!important}.axis-row{display:flex;justify-content:space-between;gap:10px;font-size:12px;border-bottom:1px solid #ded6c3;padding:7px 0}.piece-head,.piece-row{display:grid;grid-template-columns:.7fr 1fr 1fr 1fr;gap:6px;align-items:center;font-size:12px;text-align:right;padding:7px 0;border-bottom:1px solid #ded6c3}.piece-head{font-size:10px;color:#897b60}.piece-head.area-only,.piece-row.area-only{grid-template-columns:1fr 1fr}.piece-row span:first-child,.piece-head span:first-child{text-align:left}.piece-badge{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;color:white;margin-right:4px;font-size:11px}#pieces{max-height:310px;overflow:auto;margin-top:12px}footer{display:flex;justify-content:space-between;gap:16px;border-top:1px solid #d7ceba;margin-top:22px;padding-top:12px;font-size:10px;color:#8c806a}#storage-message{color:#a15c3c}body.busy{cursor:progress}[hidden]{display:none!important}@media(max-width:800px){main{padding:16px}.welcome{gap:20px}.modes{grid-template-columns:repeat(2,minmax(0,1fr))}.play-layout{gap:18px;grid-template-columns:minmax(250px,1.15fr) minmax(220px,1fr)}}@media(max-width:600px){main{padding:12px 14px}header{padding-bottom:10px}.brand{font-size:13px}.brand span{font-size:7px}button{padding:10px 13px}.welcome{grid-template-columns:1fr;padding:19px 0 8px;gap:15px}.welcome>div:first-child{order:1}.hero-pizza{max-width:190px;margin:0 auto;display:none}h1{font-size:32px;margin:10px 0 12px}#tagline{font-size:14px;line-height:1.7}.servings{margin:15px 0}.mode-heading h2{font-size:16px}.mode-heading>span{font-size:10px}.mode-card{padding:12px}.mode-card.selected{padding:11px}.mode-card strong{font-size:17px}.mode-card small{margin-bottom:6px}.mode-card p{font-size:11px}.modes{gap:9px}.play-layout{display:flex;flex-direction:column;gap:6px}.game-top{margin:14px 0 9px}.game-top h2{font-size:20px}.game-top button{font-size:12px;padding:8px 10px}.eyebrow{font-size:9px}.hud{font-size:11px;gap:5px}.hud span{padding:4px 6px}.board-wrap{padding:5px;border-radius:12px}.notice{font-size:11px;margin-top:7px;min-height:16px}aside{padding:0}aside h3{font-size:18px;margin:4px 0 7px}aside p{font-size:12px;margin:6px 0}.rule{padding:9px;font-size:11px}.actions{margin-top:10px}.best{font-size:11px}#play-guide>h3{display:none}.large{padding:12px 16px}.score strong{font-size:65px}#result{padding:10px 0}#pieces{max-height:260px}footer{font-size:9px;gap:8px;margin-top:14px;padding-top:9px}.stamp{width:54px;height:54px;font-size:13px}}
@media(max-height:520px) and (min-width:601px){main{padding:10px 18px}header{padding-bottom:7px}.brand span{display:none}.game-top{margin:8px 0}.game-top h2{font-size:18px}.game-top .eyebrow{font-size:9px}.game-top button{padding:7px 12px;min-height:40px}.play-layout{grid-template-columns:min(44vw,calc(100svh - 180px)) minmax(220px,1fr);gap:22px}.hud{font-size:10px;margin-bottom:4px}.hud span{padding:3px 5px}.board-wrap{padding:4px}aside{padding-top:0}aside h3{font-size:17px;margin:0 0 6px}aside p{font-size:12px;margin:6px 0}.rule{padding:9px}.large{padding:11px 15px}.actions{margin:7px 0}.notice{font-size:10px;margin-top:5px}.score strong{font-size:56px}footer{margin-top:12px}.welcome{padding:16px 0}.hero-pizza{max-width:290px;margin:auto}}


/* rc2: a cheerful neighborhood pizzeria */
body{background:radial-gradient(ellipse at 20% 0,#ffe8a4,transparent 50%),#fff7e6;color:#412b21}header{border-color:#dcb98e}.brand{color:#a73425}.eyebrow{color:#ac3c27;letter-spacing:.12em}h1{color:#9b3025;text-shadow:0 2px #fff}button{min-height:44px;transition:transform .12s,background .12s,box-shadow .12s}button:active{transform:translateY(2px) scale(.98)}button.primary{background:#b93526;color:#fff9de;box-shadow:0 4px 0 #81251d}button.primary:hover{background:#d0482d}.selected{border-color:#bf492d!important}.mode-card{position:relative;background:#fffdf4;border-radius:18px;box-shadow:0 6px 0 #d6b98544;overflow:hidden}.mode-card[data-mode=odd]{background:#fff0ca;border-color:#dba044}.mode-card.selected{box-shadow:0 0 0 2px #bd452b,0 7px 0 #d6b98555}.mode-sample{width:100%;max-height:135px;object-fit:contain;border-radius:50%;margin-bottom:8px}.mode-card .number{color:#ae3e28}.board-wrap{background:linear-gradient(130deg,#e5b974,#bd7c43);box-shadow:0 8px 0 #8c512d33,0 14px 24px #78512d22}.hud span{background:#ffedc7;color:#6b3b24;border:1px solid #e2bd83;font-weight:700}.rule{background:#fff0cc;border-left-color:#d29231}.piece-row{background:linear-gradient(90deg,#fff3d8,transparent);padding:8px}.score strong{color:#b13927}#result.success .score strong{color:#28734e}#pieces{max-height:none}.actions button:first-child{background:#fff1cc;border-color:#bf8748}.modes{gap:16px}.welcome{padding-bottom:12px}#people-options{flex-wrap:wrap}#people-options button{min-width:44px}.mode-heading{margin-top:12px}.mode-card p{line-height:1.5}@media(max-width:600px){.mode-sample{max-height:95px}.mode-card{padding:10px}.modes{gap:10px}.mode-card strong{font-size:16px}.mode-card p{font-size:11px}.welcome{padding-top:12px}h1{font-size:30px}.hud{gap:4px}.hud span{padding:5px 6px}.servings{gap:8px}#people-options{gap:5px}}

.modes{grid-template-columns:repeat(3,minmax(0,1fr))}.notice{font-weight:600;color:#893821;line-height:1.65;min-height:2.5em}@media(max-width:600px){.modes{grid-template-columns:1fr}.mode-card{display:grid;grid-template-columns:96px 1fr;text-align:left;column-gap:12px}.mode-sample{grid-row:1/5;max-height:104px}.mode-card .number{display:none}.mode-card strong,.mode-card small,.mode-card p{grid-column:2}.notice{font-size:12px}}
.ideal-share{background:#fff0c5;border-left:4px solid #c17b24;padding:10px 12px;font-weight:700;color:#603a20}.micro-note{border:1px dashed #a8542a;background:#fff5dc;padding:10px;font-size:12px}#pieces .piece-row.area-only,#pieces .piece-head.area-only{grid-template-columns:.55fr .9fr 1.35fr;gap:8px}#pieces .piece-row>span:last-child{text-align:right;font-weight:600}#pieces small{font-size:10px;font-weight:400}.piece-row.larger{border-left:3px solid #af4e2d}.piece-row.smaller{border-left:3px solid #427b91}.piece-row.near-ideal{border-left:3px solid #5f8961}.piece-row{padding-left:6px}
/* rc7: approved A–E poses; result order is score, chef, area details, actions. */
.chef-slot{overflow:hidden;min-width:0;padding:6px;margin:-6px;display:flow-root}
.chef-review{position:relative;display:grid;grid-template-columns:210px minmax(0,1fr);gap:12px;align-items:center;margin:16px 0 20px;padding:24px 16px 16px 8px;border:2px solid #c99b66;border-radius:20px;background:linear-gradient(130deg,#fffdf2,#fae5bc);box-shadow:0 5px 0 #93613b1c;overflow:hidden;opacity:0;transform:translateX(24px)}
.chef-review.chef-arrived{opacity:1;transform:none}.chef-review.chef-animate{animation:chef-enter .22s cubic-bezier(.18,.85,.3,1) both}.chef-portrait{min-width:0;padding-top:17px}.chef-portrait svg{display:block;width:100%;height:auto;overflow:visible}.chef-copy{min-width:0;padding:4px 0 8px}.chef-review .chef-name{font-size:10px;line-height:1.5;color:#916039;font-weight:850;letter-spacing:.07em;margin:0 0 7px}.chef-review .chef-awarded{font-size:11px;line-height:1.6;color:#856444;margin:0}.chef-review h3{font-size:23px;line-height:1.4;font-weight:900;color:#923d25;margin:5px 0 12px;overflow-wrap:anywhere}.chef-review .chef-quote{font-size:14px;line-height:1.8;font-weight:650;color:#533425;margin:0;overflow-wrap:anywhere}.chef-animate h3{animation:chef-title .18s ease-out .16s both}.chef-animate .chef-quote{animation:chef-line .15s ease-out .3s both}.chef-gold{border-color:#bd9034;background:linear-gradient(125deg,#fff4ba,#f8dfa0 48%,#fffbed);box-shadow:0 0 0 3px #eccc6a44,0 6px 0 #ae81332b}.chef-gold h3{color:#886017;text-shadow:0 1px #fff7cc}.chef-gold .chef-copy:before{content:'✦';float:right;font-size:24px;line-height:1;color:#c39125}.chef-part{transform-box:fill-box;transform-origin:50% 50%}.chef-part-body{transform-origin:50% 80%}
.chef-animate[data-face="A"] .chef-part-body{animation:chef-laugh .24s ease-in-out .05s 3}.chef-animate[data-face="A"] .chef-part-head{animation:chef-nod .24s ease-in-out .05s 3}.chef-animate[data-face="A"] .chef-part-hand-left,.chef-animate[data-face="A"] .chef-part-hand-right{animation:chef-hand-laugh .24s ease-in-out .05s 3}
.chef-animate[data-face="B"] .chef-part-head,.chef-animate[data-face="B"] .chef-part-hat{animation:chef-no .7s ease-in-out .04s}.chef-animate[data-face="B"] .chef-part-hand-left{animation:chef-droop .65s ease-out .04s}
.chef-animate[data-face="C"] .chef-part-body{animation:chef-proud .65s ease-out .04s}.chef-animate[data-face="C"] .chef-part-hand-right{animation:chef-point .65s ease-in-out .04s}
.chef-animate[data-face="D"] .chef-part-body{animation:chef-recoil .7s ease-out .03s}.chef-animate[data-face="D"] .chef-part-hat{animation:chef-hat-jump .72s ease-out .03s}.chef-animate[data-face="D"] .chef-part-hand-left,.chef-animate[data-face="D"] .chef-part-hand-right{animation:chef-hands-up .7s ease-out .03s}
.chef-animate[data-face="E"] .chef-part-body{animation:chef-rage .12s linear .04s 7}.chef-animate[data-face="E"] .chef-part-head{animation:chef-no .68s ease-in-out .06s}.chef-animate[data-face="E"] .chef-part-hat{animation:chef-hat-big .88s ease-out .02s}.chef-animate[data-face="E"] .chef-part-hand-left,.chef-animate[data-face="E"] .chef-part-hand-right{animation:chef-fists .12s ease-in-out .04s 7}.chef-animate[data-face="E"] .chef-part-tears{animation:chef-tears .8s ease-out .04s}
@keyframes chef-enter{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}@keyframes chef-title{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}@keyframes chef-line{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@keyframes chef-laugh{0%,100%{transform:none}50%{transform:translateY(4px) rotate(2deg)}}@keyframes chef-nod{0%,100%{transform:none}50%{transform:rotate(6deg) translateY(4px)}}@keyframes chef-hand-laugh{0%,100%{transform:none}50%{transform:translateY(-7px)}}@keyframes chef-no{0%,100%{transform:none}25%{transform:rotate(-4deg)}55%{transform:rotate(4deg)}80%{transform:rotate(-2deg)}}@keyframes chef-droop{0%,100%{transform:none}45%{transform:translateY(10px) rotate(-4deg)}}@keyframes chef-proud{0%,100%{transform:none}40%{transform:scale(1.025) translateY(-4px)}}@keyframes chef-point{0%,100%{transform:none}40%{transform:translateX(12px) rotate(-2deg)}}@keyframes chef-recoil{0%,100%{transform:none}22%{transform:translateX(8px) rotate(3deg)}60%{transform:translateX(-2px) rotate(-1deg)}}@keyframes chef-hat-jump{0%,100%{transform:none}30%{transform:translate(8px,-40px) rotate(9deg)}65%{transform:translate(-2px,-10px) rotate(-3deg)}}@keyframes chef-hands-up{0%,100%{transform:none}30%{transform:translateY(-12px)}}@keyframes chef-rage{0%,100%{transform:none}25%{transform:translateX(-4px) rotate(-1deg)}75%{transform:translateX(4px) rotate(1deg)}}@keyframes chef-hat-big{0%,100%{transform:none}25%{transform:translate(-8px,-66px) rotate(-10deg)}55%{transform:translate(6px,-28px) rotate(8deg)}78%{transform:translate(-2px,-8px) rotate(-3deg)}}@keyframes chef-fists{0%,100%{transform:none}50%{transform:translateY(-7px) rotate(2deg)}}@keyframes chef-tears{0%,100%{transform:none;opacity:1}45%{transform:translateY(7px);opacity:.7}}
#exact-shares{margin:12px 0;border-top:1px dashed #d5bc94;padding-top:9px;font-size:11px;color:#826145}#exact-shares summary{cursor:pointer;padding:6px 0;font-weight:650}#exact-share-rows{margin-top:6px}.exact-share-row{padding:5px 0;border-bottom:1px solid #eadfc9;font-variant-numeric:tabular-nums}
@media(max-width:600px){.chef-review{grid-template-columns:1fr;gap:0;text-align:center;padding:23px 17px 19px;margin:14px 0 18px}.chef-portrait{width:220px;max-width:100%;margin:0 auto;padding-top:15px}.chef-copy{padding:0}.chef-review h3{font-size:24px;margin:4px 0 9px}.chef-review .chef-name{font-size:10px;margin-bottom:4px}.chef-review .chef-awarded{font-size:11px}.chef-review .chef-quote{font-size:14px}.chef-gold .chef-copy:before{float:none;position:absolute;right:16px;top:20px}.chef-review .chef-name{letter-spacing:.04em}}
@media(max-height:520px) and (min-width:601px){.chef-review{grid-template-columns:170px minmax(0,1fr)}.chef-review h3{font-size:21px}}
@media(prefers-reduced-motion:reduce){.chef-review,.chef-review *{animation:none!important;transition:none!important}.chef-review.chef-arrived{opacity:1;transform:none}}
