@font-face{font-family:FoodEmoji;src:url('./emoji.ttf') format('truetype');font-display:swap}
:root{font-family:'Trebuchet MS','Segoe UI',system-ui,sans-serif;color:#193f35;background:#f7f5ed;--green:#235e49;--muted:#526858;--line:#dce2d4;--lime:#e1ed9e;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input{font:inherit;min-height:48px;min-width:0}button{cursor:pointer;border:1px solid transparent;border-radius:12px;background:var(--green);color:#fff;padding:.7rem 1rem;font-weight:650}button:hover:not(:disabled){background:#174633}button:disabled{cursor:default;opacity:.72}a{color:inherit}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid #bd7b12;outline-offset:3px}input{width:100%;border:1px solid #becbb7;background:#fffef8;border-radius:10px;padding:.7rem;color:inherit}.secondary{background:#e9edde;color:#234f3e}.secondary:hover:not(:disabled){background:#dae2cd}header,footer{max-width:1440px;margin:auto;padding:1rem max(1rem,env(safe-area-inset-left));display:flex;justify-content:space-between;align-items:center;gap:1rem;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:.25rem;font-weight:800;letter-spacing:-.03em;font-size:1.15rem;text-decoration:none}.brand>span:last-child{font-weight:400}.brand-icon{background:var(--green);color:var(--lime);border-radius:10px;padding:.2rem .65rem;margin-right:.25rem;font-size:1.5rem}.edition,.eyebrow{font-size:.625rem;text-transform:uppercase;letter-spacing:.09em;font-weight:750;color:var(--muted)}main{max-width:1440px;margin:auto;padding:.5rem max(1rem,env(safe-area-inset-right)) 1.5rem}#connection{font-size:.6875rem;color:var(--muted);text-align:right;min-height:1.5rem;line-height:1.4;overflow-wrap:anywhere}.hero{display:grid;grid-template-columns:1fr 1fr;gap:4rem;max-width:1050px;margin:auto;align-items:center;padding:2rem 0}.hero h1{font-family:Georgia,serif;font-weight:400;font-size:4rem;letter-spacing:-.045em;line-height:1.04;margin:1rem 0}.hero h1 em{color:#51815d}.intro{line-height:1.6;color:var(--muted);max-width:25rem}.tag{display:inline-block;border:1px solid var(--line);border-radius:100px;padding:.4rem .7rem;font-size:.6875rem;overflow-wrap:anywhere}.menu,.panel,.food-card{border:1px solid #cbd5bb;border-radius:20px;background:#fffef8;box-shadow:0 10px 30px #243a2810}.menu{padding:1.5rem}.menu:before{content:'🍋  🥑  🍓';display:block;font-family:FoodEmoji,system-ui;font-size:2rem;margin-bottom:.75rem}.menu h2{font-size:1.375rem;margin:0 0 .75rem}label{display:block;font-size:.8125rem;font-weight:700;margin:.75rem 0 .4rem}.menu button{width:100%;margin-top:.65rem}.cpu-note{font-size:.75rem;line-height:1.5;color:var(--muted)}.join-row{display:flex;gap:.5rem}.join-row button{width:auto;margin:0}.divider{text-align:center;font-size:.625rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin:1rem 0 .25rem}.room-bar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:3.5rem;margin:0 0 .65rem}.room-code{font-family:ui-monospace,monospace;font-size:1rem;overflow-wrap:anywhere}.room-bar button{font-size:.75rem}.scoreboard{display:grid;grid-template-columns:minmax(0,1fr) 4rem minmax(0,1fr);gap:1rem;align-items:stretch;margin-bottom:1rem}.player{display:grid;grid-template-columns:minmax(0,1fr) 3ch;grid-template-rows:1rem 2.6em 1.5rem;gap:.15rem;padding:.5rem .75rem;background:#e9edde;border:2px solid #cbd5bb;border-radius:14px;font-size:.8125rem;line-height:1.3;min-width:0;box-shadow:0 3px 0 #d7deca}.player.active{border-color:#658b52;background:#e6edcd}.player:before{content:'Am Zug';grid-row:1;grid-column:1;font-size:.625rem;visibility:hidden}.player.active:before{visibility:visible}.player strong{grid-row:2;grid-column:1/-1;overflow-wrap:anywhere}.player small{grid-row:3;grid-column:1/-1;font-size:.625rem;overflow-wrap:anywhere}.score{grid-row:1;grid-column:2;font-size:1.25rem;font-weight:750;text-align:right;font-variant-numeric:tabular-nums}.round{align-self:center;text-align:center;font-size:.625rem;text-transform:uppercase;color:var(--muted)}.round b{display:block;font-size:1.5rem;color:var(--green)}.game-table{position:relative;container-type:inline-size}.turn-banner{display:grid;grid-template-rows:1.5rem 3.8rem 5rem 3.2rem 2rem;gap:.25rem;align-items:center;text-align:center;padding:.75rem;border:1px solid transparent;border-radius:18px;min-width:0;margin:0 auto .75rem;max-width:45rem}.turn-banner.resolved{background:#e6edcf;border-color:#b7c98b}.turn-banner h1{font-family:Georgia,serif;font-size:1.5rem;font-weight:400;line-height:1.2;margin:0;overflow-wrap:anywhere}.status-detail{font-size:.8125rem;line-height:1.4;overflow-wrap:anywhere}.status-detail p{margin:0}.result-detail strong{display:block;font-size:1.125rem;font-variant-numeric:tabular-nums}.result-detail>span{display:block;font-weight:700}.motion-status{font-size:.625rem;color:var(--muted);line-height:1.3;margin:0;overflow-wrap:anywhere}#restart{font-size:.75rem;padding:.5rem;width:100%;height:100%}#restart:disabled{visibility:hidden}.duel-table{display:grid;grid-template-columns:minmax(0,1fr) 7rem minmax(0,1fr);gap:1.5rem;max-width:none;margin:auto;align-items:stretch;perspective:1400px}.card-slot{position:relative;min-width:0;padding-bottom:8px;display:flex}.card-slot:after{content:'';position:absolute;inset:8px 4px 0;background:#e3e9d5;border:1px solid #bdcbb3;border-radius:20px;z-index:0;box-shadow:0 5px 0 #d7deca}.food-card{position:relative;width:100%;min-width:0;z-index:1;transform-style:preserve-3d}.card-content{height:100%;display:grid;grid-template-rows:auto auto 3rem;border-radius:20px;overflow:hidden}.food-top{background:radial-gradient(ellipse at 45% 25%,#f7f8e8,#e1e9cb);display:grid;grid-template-rows:1.5rem 4rem 3.6em 1.5rem;align-items:center;text-align:center;padding:.5rem;font-size:1.375rem;line-height:1.2;min-width:0}.food-top .eyebrow{overflow-wrap:anywhere;line-height:1.3}.food-emoji{font-family:FoodEmoji,system-ui,sans-serif;font-size:3rem;line-height:1;margin:0}.food-top h2{font-family:Georgia,serif;font-weight:400;font-size:inherit;line-height:1.2;margin:0;overflow-wrap:anywhere}.food-top small{font-size:.625rem;line-height:1.3;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:5.4rem;padding:.5rem;gap:.3rem}.stat{display:flex;flex-direction:column;align-items:start;justify-content:center;gap:.2rem;width:100%;height:100%;margin:0;border:1px solid #e5e9d9;background:transparent;color:#254d3d;text-align:left;font-size:.8125rem;line-height:1.25;padding:.5rem;overflow-wrap:anywhere}.stat:hover:not(:disabled){background:var(--lime)}.stat strong{font-size:1.0625rem;font-variant-numeric:tabular-nums}.stat small,.stat .direction{font-size:.625rem;font-weight:400}.direction{display:block;color:var(--muted);line-height:1.3;margin-top:.15rem}.stat.be{background:#f3ebcd;border-color:#c6b36e}.stat.selected{background:var(--lime);border-color:#658b52;box-shadow:inset 3px 0 #235e49}.source{display:flex;align-items:center;padding:.5rem .75rem;min-height:48px;font-size:.6875rem;line-height:1.4;color:var(--muted);overflow-wrap:anywhere}.card-back{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:1rem;background:#214f3e;color:#f2f3d9;border:5px double #a7be91;border-radius:20px;visibility:hidden;overflow-wrap:anywhere}.is-hidden>.card-back{visibility:visible}.is-hidden>.card-content{visibility:hidden}.back-mark{font-size:5rem;color:var(--lime)}.card-back strong{font-family:Georgia,serif;font-size:1.25rem;max-width:100%}.card-back p{font-size:.8125rem;line-height:1.5}.back-chip{font-size:.625rem;max-width:100%}.table-center{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;min-width:0}.versus{display:grid;place-items:center;border:1px solid #b7c6a7;border-radius:50%;width:48px;height:48px;font-family:Georgia,serif}.pot-stack{border:1px dashed #95a57e;padding:.75rem .4rem;width:100%;text-align:center;border-radius:12px;background:#efefdd;box-shadow:0 4px 0 #dfe4ce}.pot-stack strong{display:block;font-size:1.5rem;font-variant-numeric:tabular-nums}.pot-stack span{display:block;font-size:.625rem}.be-note{font-size:.75rem;line-height:1.6;text-align:center;color:var(--muted);margin:1.25rem 0}.rules{margin-top:1rem;border-top:1px solid var(--line);padding:.5rem 0;color:var(--muted);font-size:.8125rem;line-height:1.7}.rules summary{min-height:48px;padding:.75rem 0;cursor:pointer;font-weight:650;color:#3b5b47}.rules li{margin:1rem 0}#error{color:#a14435;font-size:.8125rem;text-align:center;min-height:1rem;overflow-wrap:anywhere}footer{font-size:.6875rem;color:var(--muted);border-top:1px solid var(--line);border-bottom:0;padding-bottom:max(1rem,env(safe-area-inset-bottom))}.panel{padding:1.5rem}.lobby{max-width:650px;margin:1rem auto;text-align:center}.lobby h1{font-family:Georgia,serif;font-size:2rem;font-weight:400}.lobby p{font-size:.875rem;line-height:1.5;color:var(--muted)}.lobby .food-emoji{font-size:2.5rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.opponent-open{display:none}.opponent-dialog{max-width:min(32rem,calc(100% - 2rem));max-height:calc(100dvh - 2rem);overflow:auto;border:1px solid #95a57e;border-radius:20px;background:#f7f5ed;padding:1rem;color:inherit}.opponent-dialog::backdrop{background:#193f3580}.opponent-dialog>button{margin-bottom:1rem;width:100%}.opponent-dialog .food-card{box-shadow:none}.flight-card{position:fixed;z-index:100;pointer-events:none;overflow:hidden;border:1px solid #9cad83;border-radius:20px;background:#fffef8;box-shadow:0 20px 40px #173c3530;will-change:transform,opacity;transform-origin:center}.revealing .revealed{animation:reveal-card .65s ease both}@keyframes reveal-card{from{transform:rotateY(-150deg);opacity:.15}to{transform:rotateY(0);opacity:1}}
@media(min-width:1100px){.duel-table{grid-template-columns:minmax(0,1fr) 16rem minmax(0,1fr);gap:2rem}.turn-banner{position:absolute;top:0;left:50%;transform:translateX(-50%);width:16rem;margin:0;padding:.75rem}.table-center{justify-content:start;padding-top:20rem}.scoreboard{grid-template-columns:minmax(0,1fr) 20rem minmax(0,1fr);gap:1rem}.food-top{grid-template-rows:1.5rem 4.5rem 2.4em 1.5rem}.stats{grid-auto-rows:5rem}}
@media(max-width:1099px){.duel-table{gap:1rem}.turn-banner{grid-template-rows:1.25rem 3.6rem 4.5rem 3rem 1.5rem}.hero{gap:2rem}.hero h1{font-size:3rem}}
@media(max-width:650px),(max-height:500px) and (max-width:1099px){header{padding:.5rem .75rem}.brand{font-size:.9375rem}.brand-icon{font-size:1.25rem}.edition{display:none}main{padding:.25rem max(.75rem,env(safe-area-inset-right)) 1rem}#connection{font-size:.625rem;min-height:1.25rem}.room-bar{min-height:3rem;margin-bottom:.4rem}.room-bar .eyebrow{display:none}.room-bar .tag{max-width:9rem;font-size:.625rem;padding:.25rem .5rem}.room-code{font-size:.875rem}.room-bar button{max-width:10rem;font-size:.6875rem;padding:.5rem}.scoreboard{gap:.5rem;grid-template-columns:minmax(0,1fr) 2.5rem minmax(0,1fr);margin-bottom:.5rem}.player{font-size:.6875rem;padding:.35rem;grid-template-rows:.875rem 2.6em 1.625rem;gap:.1rem}.player:before,.player small{font-size:.5625rem}.score{font-size:1rem}.round{font-size:.5rem}.round b{font-size:1.25rem}.turn-banner{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:1rem 2.6rem 2.3rem;gap:.2rem .5rem;padding:.5rem;margin-bottom:.5rem}.turn-banner>.eyebrow{grid-column:1/-1;font-size:.5625rem}.turn-banner h1{grid-column:1;grid-row:2/4;font-size:1.2rem}.status-detail{grid-column:2;grid-row:2/4;font-size:.6875rem;line-height:1.3}.result-detail strong{font-size:.875rem}.motion-status{position:absolute;top:0;right:.4rem;font-size:.5rem;width:45%;text-align:right;pointer-events:none}.turn-banner #restart{grid-row:3;grid-column:1;position:relative;z-index:2;font-size:.6875rem;min-height:48px}.turn-banner:has(#restart:enabled) h1{grid-row:2;font-size:1rem}.duel-table{grid-template-columns:minmax(0,1fr) 4.75rem;gap:.5rem;perspective:none}.card-slot:first-child{grid-column:1/-1;grid-row:2}.card-slot:last-child{grid-column:1;grid-row:1;height:4.5rem;padding:0}.table-center{grid-column:2;grid-row:1;padding:0;gap:0}.versus{display:none}.pot-stack{height:4.5rem;padding:.25rem}.pot-stack strong{font-size:1.125rem}.pot-stack span{font-size:.5625rem}.pot-stack span br{display:none}.food-top{font-size:1.125rem;grid-template-columns:3.5rem minmax(0,1fr);grid-template-rows:1rem 2.7em 1rem;padding:.4rem .6rem;gap:0 .5rem;text-align:left}.food-top .eyebrow{grid-column:2;font-size:.5625rem}.food-top .food-emoji{grid-column:1;grid-row:1/4;font-size:2.75rem}.food-top h2{grid-column:2;grid-row:2}.food-top small{grid-column:2;grid-row:3;font-size:.5625rem}.stats{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:4.2rem;padding:.4rem;gap:.3rem}.stat{font-size:.75rem;padding:.35rem .5rem;gap:.1rem}.stat strong{font-size:.9375rem}.stat .direction,.stat small{font-size:.5625rem}.source{font-size:.625rem;padding:.4rem .75rem}.card-slot:last-child .food-card{border-radius:12px;overflow:hidden}.card-slot:last-child .card-content{grid-template-rows:4.5rem}.card-slot:last-child .food-top{grid-template-columns:2.5rem minmax(0,1fr);grid-template-rows:1rem 2.8em;font-size:.875rem;padding:.3rem 3.3rem .3rem .4rem}.card-slot:last-child .food-emoji{font-size:1.75rem;grid-row:1/3}.card-slot:last-child .food-top small,.card-slot:last-child .stats,.card-slot:last-child .source{display:none}.card-slot:last-child .card-back{border-radius:12px;display:grid;grid-template-columns:2rem minmax(0,1fr);padding:.3rem 3.3rem .3rem .4rem;border-width:2px;text-align:left}.card-slot:last-child .back-mark{font-size:1.75rem}.card-slot:last-child .card-back strong{font-size:.875rem}.card-slot:last-child .card-back p,.card-slot:last-child .back-chip{display:none}.opponent-open{display:block;position:absolute;right:.25rem;top:.75rem;z-index:3;width:48px;height:48px;padding:.25rem;font-size:.625rem;background:#e9edde;color:#234f3e}.hero{grid-template-columns:1fr;gap:1rem;padding:.5rem 0}.hero h1{font-size:2.25rem;margin:.5rem 0}.hero .intro{font-size:.8125rem;margin:.5rem 0}.hero .tag{display:none}.menu{padding:1rem}.menu:before{display:none}.menu h2{font-size:1.25rem}.lobby{padding:1rem}.lobby .food-emoji{display:none}.lobby h1{font-size:1.5rem;margin:.5rem 0}.be-note{text-align:left;font-size:.625rem;margin:.75rem 0}footer{display:block;padding:.75rem;font-size:.625rem}footer span{display:block;margin-top:.3rem}}

/* Font-relative reserve tracks allow 200% text without truncation or overlays. */
@container (max-width:15rem){.turn-banner{grid-template-rows:1.5rem 4.5rem 5rem}.motion-status{position:static;grid-column:1/-1;grid-row:4;min-height:2rem}.food-top{grid-template-rows:1.5rem 4.8em 1.5rem}.stats{grid-auto-rows:6rem}.card-slot:last-child{height:7rem}.card-slot:last-child .card-content{grid-template-rows:7rem}.card-slot:last-child .food-top{grid-template-columns:1.75rem minmax(0,1fr);grid-template-rows:2rem 4.8em;padding-right:3.3rem}.card-slot:last-child .food-top .food-emoji{font-size:1.5rem}.table-center .pot-stack{height:7rem}.opponent-open{top:2rem}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.flight-card{display:none}}

/* Stable intrinsic reserves, including empty flight notices. */
.motion-status{height:2rem;display:grid;align-items:center;width:100%}
.stats{grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr))}
#app{container-type:inline-size}
.brand{flex-wrap:wrap;min-width:0}.brand-icon{flex-shrink:0}
@container (max-width:40rem){.player strong{min-height:3.9em}.player{grid-template-rows:1rem 3.9em 2.6em}.stats{grid-auto-rows:6rem}.food-top{grid-template-rows:1.5rem 4rem 4.8em 1.5rem}.turn-banner{grid-template-rows:1.5rem 5.5rem 7rem 3rem 2rem}}
@media(min-width:1100px){.turn-banner{grid-template-rows:1.5rem 5.5rem 7rem 3rem 2rem}.table-center{padding-top:23rem}.food-top{grid-template-rows:1.5rem 4.5rem 3.6em 1.5rem}}
@media(max-width:650px),(max-height:500px) and (max-width:1099px){.turn-banner{grid-template-rows:1rem 2.6rem 2.3rem}.motion-status{height:1rem;width:45%}.stats{grid-auto-rows:4.2rem}.food-top{grid-template-rows:1rem 2.7em 1rem}.player{grid-template-rows:.875rem 2.6em 1.625rem}.player strong{min-height:0}.duel-table{grid-template-columns:minmax(0,1fr) 64px}.card-slot:last-child .food-top{grid-template-rows:1rem 2.8em}.opponent-open{right:4px}.card-slot:last-child .food-card{overflow:visible}.card-slot:last-child .card-content{overflow:hidden}.card-slot:last-child .card-back strong{font-size:.875rem}}
@container (max-width:15rem){
 .player{grid-template-rows:1rem 8em 3.9em}.player strong{min-height:0}
 .turn-banner{grid-template-columns:minmax(0,1fr);grid-template-rows:2rem 5rem 7rem 3rem 2rem}
 .turn-banner>.eyebrow{grid-column:1;grid-row:1}.turn-banner h1{grid-column:1;grid-row:2}.status-detail{grid-column:1;grid-row:3}.turn-banner #restart{grid-column:1;grid-row:4}.motion-status{grid-column:1;grid-row:5;position:static;width:100%;height:2rem}
 .food-top{grid-template-columns:2.5rem minmax(0,1fr);grid-template-rows:1.5rem 4.8em 1.5rem}
 .stats{grid-template-columns:1fr;grid-auto-rows:5.5rem}
 .card-slot:last-child .food-top{grid-template-columns:minmax(0,1fr);grid-template-rows:1.5rem 4.8em;font-size:.75rem;padding-right:56px}.card-slot:last-child .food-top .eyebrow,.card-slot:last-child .food-top h2{grid-column:1}.card-slot:last-child .food-top .food-emoji{display:none}
 .card-slot:last-child .card-back{grid-template-columns:1fr;padding-right:56px}.card-slot:last-child .card-back .back-mark{display:none}.card-slot:last-child .card-back strong{font-size:.75rem}
 .opponent-open{top:2rem}.table-center .pot-stack{height:7rem}.pot-stack span{font-size:.5rem}
}


.pot-stack span,.opponent-open{overflow-wrap:anywhere}.player{grid-template-columns:minmax(0,1fr) 3.5ch}
@container (max-width:40rem){.stats{grid-auto-rows:6.3rem}}
@media(max-width:650px),(max-height:500px) and (max-width:1099px){.stats{grid-auto-rows:4.2rem}}
@container (max-width:15rem){.stats{grid-auto-rows:6.3rem}.opponent-open{font-size:16px}}

@media(max-width:650px){.turn-banner{grid-template-rows:1rem 2.6rem 2.3rem 1rem}.motion-status{position:static;grid-column:1/-1;grid-row:4;width:100%;height:1rem}}
@media(max-height:500px) and (min-width:651px) and (max-width:1099px){
 .game-table{display:grid;grid-template-columns:190px minmax(0,1fr);gap:1rem;align-items:start}
 .turn-banner{grid-column:1;grid-row:1;grid-template-columns:1fr;grid-template-rows:1.5rem 5.5rem 7rem 3rem 2rem;margin:0;padding:.5rem}
 .turn-banner>.eyebrow{grid-column:1;grid-row:1}.turn-banner h1{grid-column:1;grid-row:2}.status-detail{grid-column:1;grid-row:3}.turn-banner #restart{grid-column:1;grid-row:4}.motion-status{grid-column:1;grid-row:5;position:static;width:100%;height:2rem}
 .duel-table{grid-column:2;grid-row:1;width:100%}.be-note{grid-column:1/-1}.scoreboard{margin-bottom:.5rem}
}
@container (max-width:15rem){.turn-banner{grid-template-rows:2rem 5rem 7rem 3rem 2rem}.motion-status{grid-row:5;height:2rem}}

@media(max-width:650px){.turn-banner{grid-template-rows:1rem 2.6rem 3.3rem 1rem}}
@container (max-width:15rem){.turn-banner{grid-template-rows:2rem 5rem 7rem 3rem 2rem}}

@container (max-width:40rem){.food-top{grid-template-rows:2rem 4rem 8.4em 3rem}}
@media(max-width:650px){.food-top{grid-template-rows:1rem 2.7em 1rem}}
@container (max-width:15rem){.food-top{grid-template-rows:1.5rem 4.8em 1.5rem}}
@media(max-height:500px) and (min-width:651px) and (max-width:1099px){
 @container (max-width:40rem){.game-table{grid-template-columns:minmax(0,1fr)}.turn-banner{grid-column:1;grid-row:1;width:100%;max-width:none}.duel-table{grid-column:1;grid-row:2}.food-top{grid-template-rows:1.5rem 4.8em 1.5rem}.card-slot:last-child .food-top{grid-template-rows:1rem 2.8em}}
}
