@import url('/fonts.css');
:root{--green:#153e2c;--forest:#214f36;--cream:#fff6df;--yellow:#ffce39;--muted:#7f8b75;--coral:#fc796d;--line:#d7ddc8;color:var(--green);font-family:'Arial Rounded MT Bold','Trebuchet MS',Arial,sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--cream)}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.48}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #f67c53;outline-offset:4px}a{color:inherit;text-decoration:none}img{max-width:100%;user-select:none;-webkit-user-drag:none}h1,h2,p{margin:0}h1{font-size:clamp(40px,5.4vw,80px);font-weight:900;letter-spacing:-3px;line-height:1.03}h1 em{font-style:normal;color:#6c843e}p{font-size:17px;line-height:1.6}small{line-height:1.5}.eyebrow{font-size:11px;font-weight:900;letter-spacing:2px}.muted{color:var(--muted);font-size:13px}.button{display:flex;justify-content:center;align-items:center;gap:10px;border:0;border-radius:15px;min-height:56px;padding:16px 22px;font-size:12px;letter-spacing:.7px;font-weight:900;transition:transform .12s,filter .12s;white-space:normal;text-align:center}.button:hover{filter:brightness(1.04);transform:translateY(-2px)}.button:active{transform:translateY(2px)}.yellow{background:linear-gradient(#ffdf61,#ffc82a);color:var(--green);box-shadow:0 4px 0 #c99414}.green{background:var(--green);color:var(--cream);box-shadow:0 4px 0 #09291a}.cream{background:var(--cream);color:var(--green)}.outline{border:1px solid #98ad93;background:none;color:var(--green)}.text-button{border:0;background:none;padding:12px 4px;font-size:12px;font-weight:bold;color:inherit;text-decoration:underline;text-underline-offset:4px}.icon-button{width:36px;height:36px;border:1px solid #bdc8ae;border-radius:50%;background:#fff5;color:inherit;font-size:21px;display:inline-grid;place-items:center}.hidden{display:none!important}.logo{font-weight:1000;font-size:clamp(32px,4vw,56px);line-height:.95;letter-spacing:-2px;text-shadow:0 2px 0 #fff}.logo strong{color:#e8a718;font-size:1.2em;text-shadow:0 2px 0 #a87516}.logo small{display:block;font-size:10px;letter-spacing:5px;margin-top:12px;text-shadow:none}.home{max-width:1440px;margin:auto;padding:30px 6vw 0;min-height:100svh;overflow:hidden}.home-top{display:flex;justify-content:space-between;align-items:center}.home-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;min-height:79vh}.intro{padding:36px 0}.intro .logo{font-size:28px;margin-bottom:32px}.intro .logo small{font-size:8px;letter-spacing:3px}.intro h1{margin-bottom:22px}.intro p{color:#71816a}.feature-pills{display:flex;gap:7px;margin:22px 0 30px;flex-wrap:wrap}.feature-pills span{border:1px solid #ccd6bb;border-radius:30px;padding:7px 10px;font-size:10px;font-weight:bold}.join-card{max-width:470px;background:#fffdf7;border:1px solid #e3dfcd;border-radius:19px;padding:17px 20px;box-shadow:0 10px 32px #434f2310}.join-card label{font-size:11px;font-weight:bold}.join-row{display:flex;gap:12px;margin:8px 0}.join-row input{width:50%;flex:1;min-width:0;border:0;background:#eff1e6;border-radius:11px;font-size:25px;letter-spacing:3px;padding:12px 15px;color:var(--green);font-weight:bold}.join-row .button{font-size:12px;min-height:50px}.join-card small{color:#919780;font-size:10px}.home-actions{max-width:470px;display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:18px}.home-actions .green{font-size:10px;min-height:44px;padding:14px 18px}.home-actions .text-button{font-size:11px}.home-art{height:660px;max-height:80vh;position:relative;align-self:end}.sun-disc{position:absolute;inset:9% -20% 1% -4%;border-radius:48% 48% 12% 12%;background:linear-gradient(#ffdc70,#e9b53e);transform:rotate(-4deg);box-shadow:0 25px 70px #a97b1c22}.sun-disc:before{content:'';position:absolute;inset:20px;border:1px solid #fff5;border-radius:inherit}.hero-goat{position:absolute;height:95%;width:100%;object-fit:contain;bottom:4%;filter:drop-shadow(0 18px 15px #6b4e3e25);animation:idle 4s ease-in-out infinite}.hero-bucket{position:absolute;width:37%;bottom:-1%;left:36%;filter:drop-shadow(0 15px 15px #33280e30)}.art-badge{position:absolute;right:-12%;top:27%;font-size:12px;line-height:1.5;letter-spacing:1px;font-weight:900;background:var(--green);color:var(--cream);padding:20px;border-radius:50% 50% 50% 10%;transform:rotate(9deg)}.floating-drop{position:absolute;left:0;top:26%;width:75px;transform:rotate(-15deg);animation:float 4s ease-in-out infinite}.home footer{border-top:1px solid #d8dccb;font-size:10px;letter-spacing:3px;padding:22px 0;margin-top:25px}.topbar{display:flex;justify-content:space-between;align-items:center;padding:20px 0;border-bottom:1px solid #fff2}.mini-brand{font-size:16px;letter-spacing:-.5px;font-weight:900}.mini-brand b{color:var(--yellow)}.top-meta{display:flex;align-items:center;gap:10px}.connection{font-size:10px;color:#d7926c}.connection:before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;margin-right:6px}.connection.online{color:#8da677}.room-pill{border:1px solid #b9c8ad;border-radius:20px;font-size:10px;padding:6px 10px;white-space:nowrap}.host-shell{max-width:1180px;margin:auto;padding:0 5vw 50px}.host-shell .topbar{border-bottom:1px solid var(--line)}.host-shell .mini-brand b{color:#bd8a16}.host-title{display:flex;align-items:center;justify-content:space-between;margin:42px 0 30px}.host-title h1{font-size:52px;margin-top:16px}.host-trophy{width:140px;height:140px;object-fit:contain;transform:rotate(9deg)}.host-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:20px}.panel{border:1px solid #dce0d0;border-radius:24px;padding:30px;background:#fffdf7}.room-panel{display:flex;flex-direction:column;gap:14px;background:var(--green);color:var(--cream);border:0}.big-code{font-size:76px;letter-spacing:4px;line-height:1.1;color:var(--yellow)}.room-panel p{font-size:13px;color:#c1cdb6;margin-bottom:8px}.room-panel .outline{color:var(--cream);border-color:#6c8365}.room-panel .text-button{font-size:10px}.host-note{font-size:10px;color:#b0c2a4;text-align:center}.control-panel{display:flex;flex-direction:column;justify-content:space-between;gap:20px}.control-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.control-heading .eyebrow{letter-spacing:1px}.host-time{font-size:86px;font-weight:900;letter-spacing:-5px;text-align:center;margin:22px 0}.control-panel .muted{text-align:center;font-size:12px}.roster-panel{margin-top:22px}.roster-panel h2{font-size:20px}.roster{margin-top:20px}.result-row{display:flex;align-items:center;gap:16px;border-bottom:1px solid #e5e8da;padding:13px 6px;font-size:14px}.result-row:last-child{border:0}.result-rank{color:#8f9a83;width:24px;font-size:11px;font-weight:bold}.result-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-liters{font-weight:900}.is-me{background:#ffd54c55;border-radius:9px}.back{font-size:12px;display:inline-block;margin:25px}.join-shell{min-height:100svh;background:radial-gradient(ellipse at 50% 30%,#ffe49b,transparent 55%)}.join-page{max-width:400px;padding:25px;margin:auto;text-align:center}.join-page .logo{font-size:32px}.join-goat{height:220px;display:block;margin:10px auto}.join-page h1{font-size:36px;letter-spacing:-1px;margin:18px 0 10px}.join-page p{font-size:14px;color:#829074}.join-page form{display:grid;gap:12px;margin:25px 0}.join-page input{width:100%;border:1px solid #c5d2b4;border-radius:12px;padding:18px;background:#fffdf5;color:var(--green);text-align:center;font-size:19px}.play-shell{min-height:100svh;background:linear-gradient(#143e2cf2,#193d2bf2),url('/assets/farm-background.webp') center/cover;color:var(--cream);padding:0 22px 28px}.play-shell .topbar{max-width:520px;margin:auto;padding:12px 0}.controller{max-width:440px;margin:auto}.controller-head{display:flex;justify-content:space-between;align-items:center;padding:22px 0 8px}.controller-head .eyebrow{max-width:70%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:1px}.phone-score{text-align:center;position:relative;z-index:2}.phone-score>strong{font-size:68px;letter-spacing:-3px;line-height:1.05;font-weight:900}.phone-score>span{font-size:10px;letter-spacing:2px;display:block;color:#aabda3;margin:4px}.rank-chip{display:inline-block;background:#f9d457;color:var(--green);font-size:9px;font-weight:bold;letter-spacing:1px;padding:6px 11px;border-radius:20px;margin-top:4px}.phone-scene{height:240px;position:relative;margin-top:-7px}.phone-goat{position:absolute;height:100%;width:100%;object-fit:contain;filter:drop-shadow(0 12px 15px #001e1550)}.phone-bucket{position:absolute;width:29%;left:35.5%;bottom:-15px;z-index:2}.combo{position:absolute;right:0;top:35%;font-size:17px;color:var(--yellow);font-weight:900;transform:rotate(-9deg)}.phone-status{text-align:center;margin:16px 0 14px;font-size:15px;font-weight:bold}.phone-timer{height:5px;border-radius:10px;background:#ffffff20;overflow:hidden}.phone-timer div{height:100%;background:var(--yellow);width:100%;transition:width .1s linear}.tap-controls{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-top:12px}.tap-button{border:0;background:none;padding:0;aspect-ratio:1.12;width:43%;touch-action:none;user-select:none;-webkit-user-select:none;transition:transform .06s;position:relative}.tap-button img{width:100%;height:100%;object-fit:contain;pointer-events:none;filter:drop-shadow(0 7px 0 #001e1540)}.tap-button:disabled{opacity:.55}.tap-button.pressed{animation:tap .15s ease}.alternate{color:#e8e9ce;font-size:28px}.controller-bottom{display:flex;justify-content:space-between;align-items:center;margin:0 10px 14px;font-size:9px;letter-spacing:1px;color:#aec0a6}.controller-bottom b{font-size:18px;color:var(--cream);letter-spacing:0}.controller>.button{width:100%;margin:20px 0}.milk-stream{position:absolute;left:49%;bottom:35px;width:5px;height:45px;background:#fff7e1;border-radius:10px;opacity:0;transform-origin:top}.squirt .milk-stream{animation:squirt .22s}.squirt .phone-goat{animation:bounce .2s}.phone-results{background:var(--cream);color:var(--green);border-radius:18px;padding:20px;margin-top:20px}.phone-results h2{font-size:23px;margin-bottom:10px}.phone-results .button{width:100%;margin-top:20px}.phone-results .result-row{font-size:13px}.count-overlay{position:fixed;inset:0;background:#123a2bbd;backdrop-filter:blur(7px);z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--cream);pointer-events:none}.count-overlay span{font-size:16px;letter-spacing:5px;font-weight:bold}.count-overlay strong{font-size:220px;line-height:1.2;color:var(--yellow);text-shadow:0 9px 0 #ac831c}.stage-shell{min-height:100svh;background:linear-gradient(#133d2be8,#153e2b35 60%,#143c2be8),url('/assets/farm-background.webp') center 58%/cover fixed;color:var(--cream);padding:0 3.2vw;overflow:hidden;display:flex;flex-direction:column}.stage-shell .topbar{padding:12px 0;flex-shrink:0}.stage-shell .logo{font-size:clamp(28px,3.8vw,64px);text-shadow:0 4px 0 #062d1c}.stage-shell .logo small{letter-spacing:6px;color:#e0e5c9;font-size:9px}.stage-header{display:grid;grid-template-columns:1fr .7fr 1fr;align-items:center;gap:3vw;margin:24px 0 22px}.stage-clock{background:#0d2b20b5;border:1px solid #a6b88855;border-radius:20px;padding:13px 28px;text-align:center;min-width:180px;box-shadow:0 8px 35px #001d1b44}.stage-clock small{display:block;font-size:9px;letter-spacing:3px;color:#a7b98f}.stage-clock strong{font-size:clamp(45px,5.5vw,88px);letter-spacing:-3px;line-height:1.1;font-variant-numeric:tabular-nums}.stage-clock.urgent{color:#ffc56a;animation:urgent .7s infinite alternate}.room-info{text-align:right}.room-info small{font-size:9px;letter-spacing:2px;color:#d8e2c7;display:block}.room-info>b{font-size:clamp(25px,3vw,46px);letter-spacing:3px;display:block;color:#ffdc62}.room-info>span{font-size:11px;opacity:.65;display:block}.stage-title{display:flex;justify-content:space-between;gap:20px;margin-bottom:5px}.stage-title .eyebrow{color:#fbe39b;font-size:10px}.stage-title .muted{font-size:10px;color:#d5dfc7}.lanes{display:grid;grid-template-columns:repeat(var(--players),minmax(0,1fr));align-items:end;gap:1.4vw;flex:1;min-height:340px;max-height:65vh}.lane{position:relative;min-width:0;align-self:end;transition:transform .4s}.crown{font-size:45px;text-align:center;color:var(--yellow);height:42px;opacity:0;filter:drop-shadow(0 0 15px #ffcd46);line-height:1}.leader .crown{opacity:1}.lane-scene{position:relative;height:clamp(210px,31vw,430px)}.lane-goat{position:absolute;width:100%;height:100%;object-fit:contain;bottom:0;filter:drop-shadow(0 10px 10px #001e1530)}.lane-bucket{position:absolute;bottom:-2%;left:25%;width:50%;filter:drop-shadow(0 5px 8px #001e1540);z-index:2}.milk-meter{position:absolute;left:0;bottom:5%;height:55%;width:12px;border:2px solid #e2e8c6;border-radius:20px;background:#153e2c9c;overflow:hidden;z-index:3}.milk-meter i{position:absolute;bottom:0;width:100%;height:0;background:linear-gradient(#fffef0,#ffd54e);border-radius:8px;transition:height .25s}.lane-card{position:relative;text-align:center;background:linear-gradient(135deg,#174530,#103322);border:1px solid #d1c18a70;border-radius:14px;box-shadow:0 6px 0 #102f1f,0 12px 30px #05271f50;padding:12px 4px 10px;z-index:3}.lane-name{display:block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;text-transform:uppercase;font-size:clamp(13px,1.5vw,25px);font-weight:900;letter-spacing:.4px}.lane-score{display:block;font-size:clamp(24px,3.9vw,64px);font-weight:900;color:#fff4c7;letter-spacing:-1.5px;white-space:nowrap;font-variant-numeric:tabular-nums;line-height:1.15;margin:5px 0}.lane-place{font-size:8px;letter-spacing:2px;color:#afc3a1}.leader .lane-card{background:linear-gradient(130deg,#f8d76a,#deb047);color:#153e2c;border-color:#fff3aa;box-shadow:0 6px 0 #9f7c23,0 0 35px #ffdf713d}.leader .lane-score{color:#143e2c}.leader .lane-place{color:#47602f}.lane-splash{position:absolute;z-index:3;bottom:14%;left:25%;width:50%;opacity:0}.milking .lane-splash{animation:splash .9s infinite}.milking .lane-goat{animation:idle 1.4s infinite}.finished .leader{animation:winner 1.5s infinite alternate}.standings{height:34px;margin-top:14px;overflow:hidden;flex-shrink:0}.standings-track{display:flex;gap:35px;width:max-content;min-width:100%;animation:marquee 40s linear infinite}.standings-track span{white-space:nowrap;font-size:14px;font-weight:bold;color:#f5e4b3}.stage-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid #fff3;margin-top:8px;padding:14px 0 18px;flex-shrink:0}.stage-footer>span{font-size:clamp(10px,1.1vw,18px);font-weight:900;letter-spacing:1px}.stage-footer .text-button{font-size:10px;white-space:nowrap}.empty-stage{text-align:center;flex:1;padding:15px}.empty-stage>div{height:200px}.empty-stage img{height:100%}.empty-stage h1{font-size:45px;letter-spacing:-1px}.empty-stage p{font-size:15px;color:#d6dfc3;margin:12px}.empty-stage>b{font-size:50px;letter-spacing:10px;color:var(--yellow)}.lanes:empty{display:none}.error-page{max-width:550px;margin:10vh auto;padding:30px;text-align:center}.error-page h1{font-size:36px;letter-spacing:-1px;margin:50px 0 20px}.error-page p{margin-bottom:30px}.error-page .button{display:inline-flex}.celebrate .stage-shell:after{content:'✦　✧　✦　✧　✦　✧　✦';position:fixed;top:0;left:10%;font-size:70px;color:var(--yellow);letter-spacing:30px;pointer-events:none;animation:confetti 2s forwards;z-index:9}#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);background:#092f23;color:#fff8e6;border:1px solid #c6d2a544;border-radius:14px;padding:15px 22px;font-size:13px;z-index:50;opacity:0;transition:.2s;pointer-events:none;max-width:90vw;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}
@keyframes idle{50%{transform:translateY(-5px) rotate(1deg)}}@keyframes float{50%{transform:translateY(-12px) rotate(-8deg)}}@keyframes tap{50%{transform:scale(.89)}}@keyframes bounce{50%{transform:translateY(-4px) scale(1.02,.97)}}@keyframes squirt{10%{opacity:1}100%{opacity:0;transform:translateY(25px) scaleY(.4)}}@keyframes splash{30%{opacity:.9;transform:scale(1.1)}70%{opacity:0;transform:scale(1.3) translateY(-12px)}}@keyframes urgent{to{box-shadow:0 0 25px #ff914f66}}@keyframes winner{to{transform:translateY(-5px)}}@keyframes marquee{to{transform:translateX(-65%)}}@keyframes confetti{to{transform:translateY(85vh) rotate(15deg);opacity:0}}
@media(min-width:1600px){.stage-header{margin:32px 0}.lanes{max-height:68vh}.lane-scene{height:min(37vh,480px)}.lane-name{font-size:30px}.lane-score{font-size:70px}.lane-place{font-size:12px}.stage-title .eyebrow,.stage-title .muted{font-size:14px}}
@media(max-width:850px){.home{padding:20px 6vw 0}.home-grid{gap:0;grid-template-columns:1.1fr 1fr}.home-art{height:500px}.art-badge{right:-20%;font-size:9px;padding:15px}.intro h1{font-size:55px}.feature-pills span{font-size:9px}.host-title h1{font-size:44px}.big-code{font-size:60px}.panel{padding:23px}.host-time{font-size:75px}.stage-shell{min-width:800px}.stage-header{margin:15px 0}.stage-clock{padding:10px}.stage-shell .logo{font-size:35px}.lanes{min-height:270px}.lane-scene{height:220px}.stage-shell .lane-score{font-size:33px}}
@media(max-width:600px){.home-top .eyebrow{font-size:8px;letter-spacing:1px}.home-grid{display:flex;flex-direction:column;align-items:stretch}.intro{padding:25px 0 0;position:relative;z-index:2}.intro .logo{font-size:25px;margin-bottom:22px}.intro h1{font-size:52px;letter-spacing:-2px}.intro p{font-size:14px;margin-top:10px}.feature-pills{margin:18px 0}.home-art{height:290px;width:85%;margin:20px auto 0;align-self:center;max-height:none;order:2}.sun-disc{inset:5% -5% -10%}.hero-goat{height:110%;bottom:0}.hero-bucket{width:31%;left:36%;bottom:-5%}.art-badge{right:-13%;top:20%;font-size:9px}.floating-drop{width:50px;left:3%}.home footer{position:relative;font-size:8px;letter-spacing:1.5px;margin-top:25px}.join-card{padding:13px 16px}.join-row input{font-size:22px;padding:12px}.join-row .button{padding:12px 16px}.home-actions{gap:9px}.home-actions .green{flex:1;font-size:9px}.home-actions .text-button{font-size:10px}.host-shell{padding:0 5vw 35px}.host-title{margin:28px 0 22px}.host-title h1{font-size:34px;letter-spacing:-1.5px}.host-trophy{width:95px;height:95px}.host-grid{grid-template-columns:1fr}.big-code{font-size:65px}.panel{padding:24px}.control-panel{gap:15px}.host-time{margin:0;font-size:66px}.roster-panel .control-heading{align-items:start;flex-direction:column}.topbar .mini-brand{font-size:13px}.top-meta{gap:7px}.connection{font-size:9px}.icon-button{width:30px;height:30px;font-size:18px}.phone-score>strong{font-size:62px}.phone-scene{height:220px}.controller-head{padding-top:15px}.play-shell{padding:0 18px 20px}.phone-status{font-size:13px}.phone-results h2{font-size:21px}}
@media(max-height:740px) and (max-width:600px){.controller-head{padding-top:10px}.phone-score>strong{font-size:47px}.phone-scene{height:175px}.phone-status{margin:12px 0 10px}.tap-controls{margin-top:8px}.tap-button{max-height:140px}.controller-bottom{margin-bottom:5px}.phone-score .rank-chip{padding:4px 9px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* The spectator display fits a projector viewport without page scrolling. */
.stage-shell{height:100svh;min-height:0}.stage-shell .topbar{padding:8px 0;min-height:48px}.stage-header{margin:16px 0 14px}.stage-shell .lanes{min-height:0;max-height:none}.stage-shell .lane-scene{height:clamp(100px,calc(100svh - 460px),470px)}.stage-shell .standings:empty{display:none}.stage-footer{padding:10px 0 12px;min-height:50px}.stage-footer .text-button{padding:8px 0}.stage-shell .empty-stage{min-height:0}.stage-shell .empty-stage>div{height:clamp(100px,24vh,240px)}
@media(max-height:650px){.stage-header{margin:10px 0}.stage-shell .logo{font-size:35px}.stage-clock strong{font-size:45px}.stage-clock{padding:8px 20px}.stage-title{margin-bottom:0}.lane-card{padding:6px 4px}.lane-score{font-size:32px}.lane-name{font-size:16px}.stage-shell .lane-scene{height:clamp(100px,calc(100svh - 350px),250px)}.crown{height:28px;font-size:30px}.stage-shell .topbar{min-height:42px}.stage-footer{min-height:40px;padding:5px 0}}
