@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@500;600;700&display=swap";:root{color:#25221d;font-synthesis:none;--paper:#fff8ea;--kraft:#efe5d4;--ink:#25221d;--paprika:#d84a32;--herb:#47725a;--line:#b8aa96;--muted:#756d61;background:#efe5d4;font-family:DM Sans,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid var(--paprika);outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.5}body:before{content:"";pointer-events:none;opacity:.35;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.08'/%3E%3C/svg%3E");position:fixed;inset:0}.home-screen{min-height:100vh;padding:28px 30px;overflow:hidden}.status-ticket,.room-ticket{background:var(--paper);border:2px solid var(--ink);padding:34px;position:relative;box-shadow:10px 10px #25221d26}.room-ticket:after{content:"";border-bottom:2px dashed var(--line);position:absolute;bottom:13px;left:0;right:0}.ticket-heading{border-bottom:2px dashed var(--line);text-transform:uppercase;letter-spacing:.12em;justify-content:space-between;margin-bottom:28px;padding-bottom:22px;font:600 .72rem IBM Plex Mono,monospace;display:flex}.ticket-heading span:last-child{color:var(--herb)}.answer-search label{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;margin-bottom:8px;font:600 .7rem IBM Plex Mono,monospace;display:block}.answer-search input{border:2px solid var(--ink);background:#fffdf5;border-radius:0;width:100%;min-height:54px;padding:0 15px;font-weight:600}.primary-button,.secondary-button{border:2px solid var(--ink);width:100%;min-height:56px;padding:10px 16px;font-weight:700}.primary-button{color:#fff;background:var(--paprika);box-shadow:4px 4px 0 var(--ink);justify-content:space-between;align-items:center;display:flex}.primary-button span{opacity:.8;font-size:.78rem;font-weight:500}.secondary-button{background:0 0}.ticket-divider{color:var(--muted);text-transform:uppercase;align-items:center;gap:10px;margin:20px 0;font:500 .7rem IBM Plex Mono,monospace;display:flex}.ticket-divider:before,.ticket-divider:after{content:"";border-top:1px solid var(--line);flex:1}.ticket-note{text-align:center;color:var(--muted);margin:26px 0 10px;font-size:.78rem}.duel-controls{border:2px solid var(--ink);background:var(--paper);width:min(100%,430px);box-shadow:6px 6px 0 var(--ink);text-align:left;grid-template-columns:1fr 1fr;gap:10px;padding:18px;display:grid}.duel-controls label{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;grid-column:1/3;font:600 .65rem IBM Plex Mono,monospace}.duel-controls input{border:2px solid var(--ink);background:#fffdf5;border-radius:0;grid-column:1/3;min-height:46px;padding:0 12px;font-weight:600}.duel-controls button{justify-content:center;min-height:46px;padding:8px}.clean-duel-stage{grid-template-columns:1fr 1.35fr;grid-template-areas:"copy chefs""controls chefs";align-content:center;align-items:center;gap:35px 70px;max-width:1180px;min-height:calc(100vh - 110px);margin:auto;display:grid}.clean-duel-copy{grid-area:copy;align-self:end}.clean-duel-copy h1{letter-spacing:-.09em;margin:0;font:700 clamp(4rem,7vw,7rem)/.82 IBM Plex Mono,monospace}.clean-duel-copy h1 em{color:var(--paprika);font-style:normal;display:block}.clean-duel-copy p{max-width:450px;margin:28px 0 0;font-size:1.18rem;line-height:1.5}.clean-duel-chefs{grid-area:chefs;grid-template-columns:1fr auto 1fr;align-items:center;display:grid}.chef-svg{width:100%;animation:1.8s ease-in-out infinite alternate svg-idle;overflow:visible}.chef-svg-flipped{animation-name:svg-idle-flipped;animation-delay:-.9s;transform:scaleX(-1)}.clean-vs{z-index:2;color:var(--paprika);font:700 clamp(1.5rem,3vw,3rem) IBM Plex Mono,monospace;transform:skew(-8deg)}.clean-duel-stage .duel-controls{grid-area:controls;align-self:start}@keyframes svg-idle{to{transform:translateY(-8px)rotate(1deg)}}@keyframes svg-idle-flipped{to{transform:scaleX(-1)translateY(-8px)rotate(1deg)}}.centered-screen{place-items:center;min-height:100vh;padding:24px;display:grid}.status-ticket,.room-ticket{text-align:center;width:min(100%,560px)}.status-label,.round-label{color:var(--paprika);text-transform:uppercase;letter-spacing:.15em;font:600 .72rem IBM Plex Mono,monospace}.status-ticket h1,.room-ticket h1{margin:20px 0 10px;font:700 2rem IBM Plex Mono,monospace}.status-ticket p,.room-ticket p{color:var(--muted)}.status-ticket .primary-button,.room-ticket .primary-button{justify-content:center;margin-top:28px}.text-button{min-height:44px;color:var(--muted);background:0 0;border:0;margin-top:14px;text-decoration:underline}.searching-mark{justify-content:center;gap:8px;margin:38px 0 26px;display:flex}.searching-mark span{background:var(--paprika);width:15px;height:15px;animation:1s infinite alternate stamp}.searching-mark span:nth-child(2){animation-delay:.2s}.searching-mark span:nth-child(3){animation-delay:.4s}.matchup-players{grid-template-columns:1fr auto 1fr;align-items:center;gap:22px;margin:32px 0 24px;display:grid}.matchup-player{border:2px solid #0000;justify-items:center;gap:10px;min-width:0;padding:18px 10px 14px;display:grid;position:relative}.matchup-player-you{border-color:var(--paprika);background:color-mix(in srgb, var(--paprika) 6%, transparent);box-shadow:4px 4px #d84a322e}.matchup-you-label{background:var(--paprika);color:#fff;letter-spacing:.1em;text-transform:uppercase;padding:2px 7px;font:700 .6rem IBM Plex Mono,monospace;position:absolute;top:-10px}.matchup-players .chef-avatar{width:78px;height:78px}.matchup-players strong{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font:700 .82rem IBM Plex Mono,monospace;overflow:hidden}.matchup-players>span{color:var(--paprika);text-transform:uppercase;font:700 1rem IBM Plex Mono,monospace}.opponent-left-ticket .primary-button{justify-content:center}.opponent-left-mark{border:2px solid var(--paprika);width:58px;height:58px;color:var(--paprika);place-items:center;margin:30px auto 20px;font:700 2.4rem/1 IBM Plex Mono,monospace;display:grid;transform:rotate(3deg)}.invite-link{border:2px solid var(--ink);text-align:left;margin:28px 0;display:flex}.invite-link span{flex:1;padding:14px;font:500 .75rem IBM Plex Mono,monospace;overflow:hidden}.invite-link button{border:0;border-left:2px solid var(--ink);background:var(--kraft);padding:0 18px;font-weight:700}.room-seats{border-top:2px dashed var(--line);border-bottom:2px dashed var(--line);grid-template-columns:1fr 1fr;display:grid}.room-seats div{gap:5px;padding:24px 10px;display:grid}.room-seats div:first-child{border-right:1px solid var(--line)}.room-seats small,.room-seats span{color:var(--muted)}.room-seats small{text-transform:uppercase;font:600 .7rem IBM Plex Mono,monospace}.room-seats span{font-size:.75rem}.room-join-controls{text-align:left;gap:12px;margin-top:28px;display:grid}.room-join-controls label{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font:600 .68rem IBM Plex Mono,monospace}.room-join-controls input{border:2px solid var(--ink);background:#fffdf5;border-radius:0;min-height:50px;padding:0 14px;font-weight:600}.game-screen{grid-template-rows:auto auto 1fr auto;max-width:1100px;min-height:100vh;margin:auto;padding:20px 28px 24px;display:grid}.game-header{border-bottom:1px solid var(--line);grid-template-columns:1fr auto 1fr;align-items:center;min-height:60px;display:grid}.compact-wordmark{text-transform:uppercase;font:700 1rem IBM Plex Mono,monospace}.round-label{color:var(--ink);text-align:center}.round-label span{color:var(--muted);margin-left:8px}.leave-button{min-width:60px;min-height:44px;color:var(--muted);background:0 0;border:0;justify-self:end}.players{grid-template-columns:1fr auto 1fr;align-items:center;margin:18px 0;display:grid}.player-card{justify-content:flex-end;align-items:center;gap:18px;min-height:48px;display:flex;position:relative}.player-card-you{flex-direction:row-reverse}.player-meta{align-items:center;gap:8px;display:flex}.player-avatar{flex:none;position:relative}.chef-avatar{border:2px solid var(--ink);flex:none;width:46px;height:46px;box-shadow:3px 3px #25221d24}.connection-dot{background:var(--herb);border-radius:50%;width:8px;height:8px}.you-label{color:var(--muted);text-transform:uppercase;font:500 .62rem IBM Plex Mono,monospace}.score{gap:5px;display:flex}.score span{border:1px solid var(--line);width:19px;height:8px}.score .score-won{border-color:var(--paprika);background:var(--paprika)}.versus{color:var(--muted);text-transform:uppercase;margin:0 30px;font:600 .7rem IBM Plex Mono,monospace}.guess-bubble{z-index:1;background:var(--ink);color:#fff;white-space:nowrap;max-width:min(240px,40vw);padding:8px 10px;font-size:.8rem;position:absolute;bottom:calc(100% + 10px)}.guess-bubble:after{content:"";border:7px solid #0000;border-top-color:var(--ink);position:absolute;top:100%}.player-card-you .guess-bubble{left:50%}.player-card-you .guess-bubble:after{left:10px}.player-card:not(.player-card-you) .guess-bubble{right:50%}.player-card:not(.player-card-you) .guess-bubble:after{right:10px}.clue-ticket{background:var(--paper);border:2px solid var(--ink);min-height:0;position:relative;overflow:auto;box-shadow:7px 7px #25221d24}.clue-heading{border-bottom:2px dashed var(--line);justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.clue-heading div:first-child{gap:4px;display:grid}.clue-heading span{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font:600 .68rem IBM Plex Mono,monospace}.clue-heading strong{font:700 1.15rem IBM Plex Mono,monospace}.reveal-progress{text-align:right;width:min(32vw,190px)}.reveal-progress-track{border:1px solid var(--line);background:var(--kraft);height:8px;margin-top:9px;overflow:hidden}.reveal-progress-track i{background:var(--paprika);transform-origin:0;width:100%;height:100%;animation:3s linear forwards clue-progress;display:block}.reveal-progress-track .reveal-progress-complete{background:var(--herb);animation:none}.assists{border-bottom:2px dashed var(--line);gap:10px;padding:12px 24px;display:flex}.assist{border:1px dashed var(--line);background:var(--kraft);color:var(--muted);flex:1;gap:3px;padding:7px 10px;display:grid}.assist small{text-transform:uppercase;letter-spacing:.1em;font:600 .58rem IBM Plex Mono,monospace}.assist strong{font:500 .82rem IBM Plex Mono,monospace}.assist:not(.assist-unlocked) strong{opacity:.65;font-size:.95rem}.assist-unlocked{border-style:solid;border-color:var(--herb);background:var(--paper);color:var(--ink);animation:.26s ease-out both assist-in}.assist-unlocked small{color:var(--herb)}.assist-unlocked strong{text-transform:capitalize;font-weight:700}@keyframes assist-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.ingredients{margin:0;padding:0 24px;list-style:none}.ingredients li{min-height:50px;color:var(--line);border-bottom:1px solid #ddd2bf;grid-template-columns:44px 1fr auto;align-items:center;display:grid}.ingredients li:last-child{border-bottom:0}.ingredients li>span{font:500 .7rem IBM Plex Mono,monospace}.ingredients li>strong{font-weight:500}.ingredients li>small{border:1px solid var(--paprika);color:var(--paprika);text-transform:uppercase;padding:3px 5px;font:600 .6rem IBM Plex Mono,monospace}.ingredients .ingredient-visible{color:var(--ink)}.ingredients .ingredient-visible>span{color:var(--paprika)}.answer-dock{justify-self:center;width:min(100%,660px);padding-top:18px}.answer-search{position:relative}.too-quick{color:var(--paprika);text-transform:uppercase;pointer-events:none;font:600 .68rem IBM Plex Mono,monospace;position:absolute;top:34px;right:12px}.answer-search input{background:var(--paper);box-shadow:4px 4px #25221d24}.answer-search input:disabled{border-color:var(--paprika)}.answer-search-locked input{background:#fff3ef;border-color:#b72b24;animation:.26s ease-in-out wrong-answer;box-shadow:4px 4px #b72b2440}.answer-results{z-index:2;background:var(--paper);border:2px solid var(--ink);position:absolute;bottom:calc(100% - 22px);left:0;right:0;box-shadow:5px 5px #25221d24}.answer-results button{border:0;border-bottom:1px solid var(--line);text-align:left;background:0 0;width:100%;min-height:44px;padding:10px 14px;display:block}.answer-results button:last-child{border:0}.answer-results .answer-result-selected{background:var(--ink);color:#fff}.answer-hint{min-height:28px;color:var(--muted);text-align:center;padding-top:8px;font-size:.75rem}.round-result-card{--round-result:var(--paprika);z-index:3;background:var(--paper);border:2px solid var(--ink);width:min(100% - 40px,430px);box-shadow:8px 8px 0 var(--round-result);text-align:center;justify-items:center;gap:10px;padding:30px 28px;animation:.28s ease-out both round-result-in;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.round-result-player{--round-result:var(--herb)}.round-result-card span,.round-result-card small{color:var(--round-result);letter-spacing:.1em;text-transform:uppercase;font:600 .68rem IBM Plex Mono,monospace}.round-result-card strong{font:700 clamp(1.65rem,5vw,2.7rem)/1.05 IBM Plex Mono,monospace}.round-result-card small{color:var(--muted)}.form-error{color:var(--paprika);grid-column:1/-1;margin:0;font-size:.75rem}.result-overlay{--result:var(--paprika);z-index:10;color:var(--ink);pointer-events:none;position:fixed;inset:0}.result-overlay.result-win{--result:var(--herb)}.result-overlay button{pointer-events:auto}.result-scrim{background:linear-gradient(#0000 32%,#25221d14 56%,#25221d7a);animation:.42s ease-out both result-scrim-in;position:absolute;inset:0}.result-content{background:var(--paper);border:2px solid var(--ink);width:min(100% - 56px,1044px);box-shadow:0 -12px 0 color-mix(in srgb, var(--result) 82%, transparent), 0 -20px 36px #25221d1f;border-bottom:0;grid-template-columns:minmax(260px,1fr) auto 180px;align-items:center;gap:clamp(28px,4vw,58px);padding:54px 42px 32px;animation:.52s cubic-bezier(.2,.8,.2,1) both result-ticket-in;display:grid;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.result-content:before{content:"";border-top:2px dashed var(--line);position:absolute;top:18px;left:0;right:0}.result-kicker{color:var(--result);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;margin-bottom:14px;font:600 .68rem IBM Plex Mono,monospace;display:block}.result-verdict h1{letter-spacing:-.075em;text-transform:uppercase;margin:0;font:700 clamp(3.2rem,6vw,5.8rem)/.82 IBM Plex Mono,monospace}.result-verdict p{color:var(--muted);margin:13px 0 0;font-size:.92rem;font-weight:600}.result-score{color:var(--result);align-items:flex-end;gap:16px;font-family:IBM Plex Mono,monospace;display:flex}.result-score span{justify-items:center;gap:5px;display:grid}.result-score small{max-width:100px;color:var(--muted);letter-spacing:.08em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;font-size:.6rem;font-weight:600;overflow:hidden}.result-score strong{font-size:clamp(2.8rem,5vw,4.6rem);line-height:.85}.result-score i{color:var(--line);align-self:end;padding-bottom:5px;font-size:2rem;font-style:normal;line-height:1}.result-actions{gap:10px;min-width:180px;display:grid}.result-actions button{border:2px solid var(--ink);min-height:50px;color:var(--ink);white-space:nowrap;background:0 0;padding:10px 14px;font-weight:700}.result-actions button:first-child{background:var(--result);color:#fff;box-shadow:4px 4px 0 var(--ink)}@keyframes stamp{0%{opacity:.35;transform:translateY(0)}to{opacity:1;transform:translateY(-7px)}}@keyframes clue-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes result-scrim-in{0%{opacity:0}to{opacity:1}}@keyframes result-ticket-in{0%{transform:translate(-50%,100%)}to{transform:translate(-50%)}}@keyframes round-result-in{0%{opacity:0;transform:translate(-50%,calc(12px - 50%))scale(.97)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes wrong-answer{0%,to{transform:translate(0)}25%{transform:translate(-7px)}55%{transform:translate(6px)}80%{transform:translate(-3px)}}@media (width<=760px){.home-screen{padding:32px 18px;overflow:visible}.clean-duel-stage{text-align:center;grid-template-columns:1fr;grid-template-areas:"copy""chefs""controls";justify-items:center;gap:25px;min-height:calc(100vh - 64px);display:grid}.clean-duel-copy h1{font-size:clamp(3.6rem,18vw,5rem)}.clean-duel-copy h1 em{display:inline}.clean-duel-copy p{margin:18px auto 0;font-size:1rem}.clean-duel-chefs{width:100%;max-height:300px;overflow:hidden}.clean-vs{font-size:1.5rem}.duel-controls{grid-template-columns:1fr;width:100%}.duel-controls label,.duel-controls input{grid-column:1}.game-screen{padding:8px 12px 12px}.compact-wordmark{font-size:.75rem}.round-label span{margin:2px 0 0;display:block}.players{margin:12px 0}.player-card{justify-content:start;gap:5px;display:grid}.player-card:not(.player-card-you){justify-content:end}.player-card-you{direction:ltr}.player-card:not(.player-card-you) .player-meta{flex-direction:row-reverse}.player-card:not(.player-card-you) .score{justify-content:end}.chef-avatar{width:40px;height:40px}.versus{margin:0 10px}.clue-heading{padding:14px 16px}.assists{padding:10px 16px}.ingredients{padding:0 16px}.ingredients li{min-height:45px}.guess-bubble{text-overflow:ellipsis;max-width:42vw;bottom:calc(100% + 7px);overflow:hidden}.result-content{grid-template-columns:minmax(0,1fr) auto;gap:20px 14px;width:calc(100% - 20px);padding:48px 20px 20px;left:50%}.result-kicker{letter-spacing:.09em;margin-bottom:12px;font-size:.58rem}.result-verdict h1{font-size:clamp(2.65rem,12vw,3.6rem)}.result-verdict p{margin-top:11px;font-size:.82rem}.result-score{justify-self:end;gap:10px}.result-score strong{font-size:2.7rem}.result-score small{max-width:74px}.result-actions{grid-column:1/-1;grid-template-columns:1fr 1fr;min-width:0;margin-top:2px}.result-actions button{padding-inline:8px;font-size:.88rem}}@media (height<=720px){.game-header{min-height:45px}.players{margin:8px 0}.ingredients li{min-height:39px}.answer-dock{padding-top:10px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
