@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,600;0,700;1,600;1,700&display=swap');
:root{--paper:#f6eddf;--ink:#45372e;--red:#9d382e;--muted:#74675a;--line:#ddcfba}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;background-image:radial-gradient(#a2846020 .65px,transparent .65px);background-size:5px 5px}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,svg:focus-visible{outline:3px solid #487768;outline-offset:4px}button:disabled{opacity:.6;cursor:wait}.bakery{max-width:980px;margin:auto;padding:0 32px}header{height:86px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font-size:12px;font-weight:700;letter-spacing:2px;color:var(--ink);text-decoration:none}.brand span{font-weight:400;letter-spacing:3px;margin-left:6px}.tools{display:flex;gap:10px}.tools button{border:1px solid var(--line);border-radius:30px;background:transparent;padding:9px 13px;font-size:11px;min-height:44px}.tools #help{width:44px;font-size:18px}main{max-width:610px;margin:auto;text-align:center}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;margin-top:35px;color:var(--red)}h1{font-family:'Playfair Display',Georgia,serif;font-size:76px;line-height:1.1;letter-spacing:-4px;margin:10px 0;position:relative;font-weight:600}h1 em{color:var(--red)}.spark{font-size:32px;position:absolute;margin:0 0 0 18px;top:12px;color:#bc8052;letter-spacing:0}.tagline{font-size:14px;color:var(--muted);margin:13px 0 29px}.roundbar{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:14px 3px;font-size:12px}.batch{font-size:8px;letter-spacing:1.4px;color:var(--muted)}.play{border:1px solid #e0d1bc;background:#fffaf1;border-radius:20px;padding:20px 25px 17px;box-shadow:0 8px 25px #9e6e3b08;overflow:hidden}.opponent{display:flex;text-align:left;align-items:center;gap:10px}.botface{width:38px;height:37px;background:#ecc78e;border:2px solid #bd925f;border-radius:12px 12px 16px 16px;display:flex;align-items:center;justify-content:center;gap:5px;position:relative;color:#60422b;transform:rotate(-5deg)}.botface i{position:absolute;width:10px;height:5px;border-bottom:2px solid #60422b;border-radius:50%;bottom:4px}.opponent strong{font-size:11px}.opponent small{font-size:9px;display:block;color:var(--muted);margin-top:3px}.role{margin-left:auto;font-size:8px;color:var(--red);letter-spacing:1.5px;padding:6px 9px;border:1px solid #dfc5ad;border-radius:5px}.stage{position:relative;max-width:370px;margin:-3px auto 0;touch-action:none}svg{display:block;width:100%;overflow:visible;cursor:crosshair;touch-action:none}.stageNote{font-size:8px;letter-spacing:2px;color:#82745d;margin-top:-12px;pointer-events:none}.instruction h2{font-family:'Playfair Display',Georgia,serif;font-size:26px;margin:21px 0 7px}.instruction p{font-size:12px;color:var(--muted);margin:0;line-height:1.6;min-height:20px}.actions{display:flex;gap:9px;margin-top:18px;justify-content:center}button.primary,button.secondary{padding:14px 20px;border-radius:9px;font-weight:600;font-size:12px;min-height:46px}.primary{background:var(--red);border:1px solid var(--red);color:#fff8eb;box-shadow:0 3px 0 #76251f}.primary span{margin-left:20px}.primary:hover{background:#872e25}.secondary{background:transparent;border:1px solid var(--line)}.secondary:hover{background:#f0e5d4}.inputtools{margin-top:20px;display:flex;justify-content:center;gap:14px;align-items:center}.inputtools button{border:0;background:none;color:var(--red);font-size:10px;text-decoration:underline;min-height:44px}.inputtools span{font-size:8px;color:var(--muted)}.legend{display:grid;grid-template-columns:repeat(4,1fr);margin-top:24px}.legend>div{border-right:1px solid var(--line)}.legend>div:nth-child(4){border:0}.food{display:block;font-size:27px;height:35px}.cherry{color:#b52e3d;text-shadow:1px 2px #63132e}.rose{color:#d08690}.sprinkles{color:#648370;font-size:34px}.burnt{color:#604128}.legend strong{display:block;font-size:10px}.legend small{font-size:9px;color:var(--muted)}.legend p{grid-column:1/-1;font-size:9px;color:var(--muted);margin:16px 0 0}.board{text-align:left;margin-top:24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0;font-size:11px}.board summary{cursor:pointer}.board summary span{float:right;letter-spacing:1px;font-size:8px;color:var(--muted)}.board #board p{display:flex;justify-content:space-between;color:var(--muted);font-size:11px}.bottomline{font-family:'Playfair Display',Georgia,serif;font-style:italic;color:#8a7963;font-size:15px;margin:23px 0 30px}footer{text-align:center;font-size:9px;color:var(--muted);border-top:1px solid var(--line);padding:23px 0}footer a{color:inherit}footer span{margin:0 8px}footer small{display:block;margin-top:10px;font-size:8px}.values{display:flex;justify-content:center;margin-top:17px;gap:35px}.values div{min-width:100px}.values strong{font-family:'Playfair Display',Georgia,serif;font-size:28px;display:block}.values small{font-size:9px;color:var(--muted)}.values .winner strong{color:var(--red)}[hidden]{display:none!important}dialog{border:1px solid var(--line);border-radius:18px;background:#fffaf1;color:var(--ink);max-width:430px;width:calc(100% - 32px);padding:30px;box-shadow:0 20px 70px #33200d33}dialog::backdrop{background:#33241480;backdrop-filter:blur(4px)}dialog h2{font-family:'Playfair Display',Georgia,serif;font-size:33px;line-height:1.2}dialog p{font-size:12px;line-height:1.7;color:var(--muted)}dialog .eyebrow{margin-top:5px}.close{position:absolute;right:12px;top:10px;background:none;border:0;font-size:26px;width:44px;height:44px}dialog input{width:100%;padding:12px;background:#f2e8d9;border:1px solid var(--line);border-radius:7px;color:var(--ink);font:inherit;font-size:11px}.sharegrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:15px}.sharegrid button,.sharegrid a{border:1px solid var(--line);background:none;border-radius:8px;padding:13px;text-align:center;font-size:12px;color:var(--red);text-decoration:none}.slice{transition:transform .45s cubic-bezier(.2,.8,.3,1);transform-box:fill-box}.serving{animation:serve .6s ease-out}.thinking .botface{animation:consider .5s ease-in-out 2}.result .botface{transform:rotate(4deg)}@keyframes serve{from{opacity:.5;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes consider{50%{transform:rotate(8deg) translateY(-2px)}}@media(max-width:600px){.bakery{padding:0 18px}header{height:65px}.eyebrow{margin-top:25px;font-size:8px}h1{font-size:61px;letter-spacing:-3px}.spark{font-size:24px;margin-left:9px}.tagline{font-size:11px;margin-bottom:22px}.play{padding:15px 16px}.stage{max-width:330px}.instruction h2{font-size:24px}.inputtools{flex-direction:column;gap:0;margin-top:8px}.inputtools span{font-size:8px}.inputtools button{min-height:36px}.roundbar{font-size:10px}.batch{font-size:7px}.actions button{padding:13px 15px}.opponent small{font-size:8px}.legend{margin-top:20px}.bottomline{font-size:13px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}@media(max-height:600px) and (min-width:700px){main{max-width:760px}.play{position:relative;min-height:360px}.stage{max-width:310px;margin-left:0}.instruction,.actions,.values,.inputtools{width:45%;margin-left:auto}.instruction{position:absolute;top:100px;right:25px}.actions{position:absolute;top:205px;right:25px}.values{position:absolute;top:160px;right:25px}.inputtools{position:absolute;bottom:20px;right:25px}h1{font-size:52px}.eyebrow{margin-top:15px}.tagline{margin-bottom:15px}}

.slice.opening{animation:openSlice .42s cubic-bezier(.2,.8,.3,1) both}@keyframes openSlice{from{transform:translate(0,0)}to{transform:translate(var(--dx),var(--dy))}}.breakdown{font-size:10px;margin:12px auto 0;max-width:260px;color:var(--muted);text-align:left}.breakdown summary{text-align:center;cursor:pointer}.breakdown p{display:flex;justify-content:space-between;margin:6px 0}.breakdown strong{font-weight:500}
@media(max-height:600px) and (min-width:700px){.play{display:grid;grid-template-columns:1fr 1fr;gap:12px 24px;align-items:center;min-height:0}.opponent{grid-column:1/-1}.stage{grid-column:1;grid-row:2/8;width:100%;max-width:310px;margin:0}.instruction,.actions,.values,.inputtools{position:static;width:auto;margin:0;grid-column:2}.instruction{grid-row:2}.values{grid-row:3}.breakdown{grid-column:2;grid-row:4;width:100%;margin:0}.actions{grid-row:5}.actions#choiceButtons{grid-row:6}.inputtools{grid-row:7;flex-direction:column}.instruction h2{margin:0 0 8px}.stageNote{font-size:7px}.actions button{padding:12px 14px}.primary span{margin-left:8px}}
/* Keep the longer accepted name and its ornament inside narrow phones. */
@media(max-width:480px){h1{font-size:clamp(40px,12vw,56px)}h1 .spark{font-size:20px}}
.modebar{display:flex;justify-content:center;gap:8px;margin:20px 0}.modebar button{padding:10px 14px;font:inherit;border:1px solid #d8c6a4;border-radius:24px;background:transparent;cursor:pointer}.modebar button[aria-pressed=true]{background:#752c35;color:#fff}.duelPanel{background:#fff8ec;border:1px solid #d8c6a4;padding:16px;border-radius:18px;margin:12px 0}.duelPanel[hidden]{display:none}.duelPanel #duelStatus{font-size:12px;font-weight:bold;letter-spacing:1px}.recipeRule{font-size:14px;line-height:1.5}.collections{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}.collections>div{display:flex;flex-direction:column;gap:8px;min-width:0}.collections label{font-size:13px}.collections progress{display:block;width:100%;height:14px;accent-color:#923842}.collections span,.collections small,.duelPanel details{font-size:12px;line-height:1.5}.duelPanel .secondary{margin-top:12px}.modebar button:focus-visible{outline:3px solid #923842;outline-offset:3px}
.dueling main>.eyebrow,.dueling .tagline,.dueling .legend,.dueling .board,.dueling .bottomline{display:none}.dueling h1{font-size:42px;margin:12px 0}.dueling .modebar{margin:10px 0}.dueling .duelPanel{padding:12px}.dueling .collections small{display:none}.dueling .collections{margin:8px 0}.dueling .collections label{display:flex;align-items:center;gap:6px}.dueling .collections progress{flex:1;width:45%;min-width:25px}.dueling .recipeRule{margin:8px 0}.dueling .duelPanel #restartDuel{padding:6px 12px}.dueling .roundbar{margin-top:12px}
@media(max-width:480px){.dueling header{height:48px}.dueling h1{font-size:32px;margin:6px 0}.dueling .modebar{margin:6px 0}.dueling .modebar button{font-size:12px;min-height:44px;padding:8px 12px}.dueling .duelPanel{margin:8px 0;padding:10px}.dueling .duelPanel #duelStatus{font-size:10px;letter-spacing:.5px}.dueling .recipeRule{font-size:12px;margin:6px 0}.dueling .collections{gap:12px}.dueling .collections>div{gap:5px}.dueling .collections label{font-size:11px}.dueling .collections strong{font-size:13px}.dueling .stage{max-width:240px}.dueling .roundbar{padding:10px 0;margin-top:8px}.dueling .play{padding:12px}.dueling .opponent small{display:none}.dueling .instruction h2{font-size:20px}.dueling .tools{gap:5px}}
@media(max-width:480px){.dueling .stage{max-width:225px}}
.friendsDialog{max-width:470px}.friendsDialog h2{font-size:30px;margin:16px 0}.friendsDialog h2 em{color:var(--red)}.friendsDialog h3{font-family:'Playfair Display',Georgia,serif;margin:20px 0 10px}.friendsDialog #friendsStatus{font-size:12px;line-height:1.5;color:var(--red);min-height:20px}.friendsDialog form{display:flex;gap:8px;align-items:end;margin:12px 0}.friendsDialog label{font-size:11px;flex:1}.friendsDialog input{margin-top:5px;min-height:44px}.friendsDialog button:not(.close),.friendInvite a{border:1px solid var(--line);border-radius:8px;background:transparent;min-height:44px;padding:10px 12px;margin:4px 6px 4px 0;font-size:12px;color:var(--red)}.friendsDialog form button{background:var(--red)!important;color:#fff!important}.friendRow{border-bottom:1px solid var(--line);padding:10px 0}.friendRow strong,.friendRow small{display:block}.friendsDialog details{font-size:12px;padding:10px 0}.friendInvite{padding:12px;background:#f4e6d4;border-radius:12px}.friendInvite a{display:inline-block;text-decoration:none}.transferCode{letter-spacing:2px;font-weight:bold}#friendsOpen{letter-spacing:1px}
/* A scrolled phone panel must retain a reachable dismiss action. */
.friendsDialog #friendsClose{position:sticky;float:right;top:0;right:auto;margin:-12px -12px 0 0;z-index:2;background:#fffaf1;border-radius:50%}.friendsDialog{overscroll-behavior:contain}.friendsDialog h2{clear:left}
/* Only the list scrolls; the dismiss control never covers an action. */
.friendsDialog[open]{display:flex;flex-direction:column;max-height:calc(100dvh - 32px);overflow:hidden}.friendsDialog>*{flex-shrink:0}.friendsDialog #friendsClose{position:absolute;float:none;top:10px;right:12px;margin:0}.friendsDialog #friendsBody{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:0 3px 8px 0}.friendsDialog .eyebrow{margin-top:5px}.friendsDialog>p{margin:8px 0}.friendsDialog h2{margin:12px 0}.friendsDialog #friendsStatus{margin:6px 0}
@media(max-height:450px){.friendsDialog{padding:16px 24px}.friendsDialog h2{font-size:23px;margin:5px 0}.friendsDialog>.eyebrow{font-size:8px}.friendsDialog>p{font-size:10px;margin:3px 0}.friendsDialog #friendsStatus{margin:3px 0;font-size:11px}.friendsDialog h3{margin:10px 0 5px}}
