:root{font-family:Arial,Helvetica,sans-serif;color:#283d32;background:#f7f6ef;font-synthesis:none;--ink:#283d32;--muted:#768074;--line:#dedfd3;--green:#294d39;--red:#bd5147;--blue:#49759a}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default}button,a,input,summary{ -webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #ce952f;outline-offset:3px}a{color:inherit}.page-shell{max-width:1320px;margin:0 auto;padding:0 44px}.site-header{display:flex;align-items:center;justify-content:space-between;height:112px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-family:Georgia,serif;font-size:27px;line-height:.85;font-weight:bold;letter-spacing:-1px}.brand-second{display:block}.brand-dot{color:var(--red)}.brand-icon{width:50px;color:var(--red);transform:rotate(-8deg)}.icon{width:100%;height:100%;display:block}.header-note,.eyebrow,.prototype-badge,.yard-footer,.site-footer,.compass,.card-top{font-size:10px;font-weight:700;letter-spacing:1.6px}.header-note{display:flex;align-items:center;gap:10px;color:#6c7768}.tiny-flower{font-size:26px;color:#b8925f}.secondary,.primary,.text-button{border:0;border-radius:6px;padding:12px 17px;font-size:12px;font-weight:700}.secondary{border:1px solid #d2d5c8;background:transparent;color:var(--ink)}.secondary:hover{background:#e9ecdf}.primary{background:var(--green);color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:16px;min-height:42px}.primary:hover{background:#3c6249}.primary:disabled{background:#e5e8df;color:#939b90}.text-button{background:transparent;color:#5b6d5c;padding-left:0}.text-button:disabled{color:#9bA497}.page-title{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:35px 0 28px}.eyebrow{margin:0 0 10px;color:#73806b;font-size:9px}h1,h2,p{margin-top:0}h1,h2{font-family:Georgia,'Times New Roman',serif}h1{font-size:38px;font-weight:500;letter-spacing:-1.2px;margin-bottom:8px}.page-title p:last-child{color:#788170;font-size:13px;margin:0}.prototype-badge{font-size:8px;letter-spacing:1px;background:#eaf0df;border:1px solid #dfe5d5;border-radius:25px;padding:10px 12px;white-space:nowrap}.prototype-badge>span{display:inline-block;width:6px;height:6px;background:#6d8853;border-radius:50%;margin-right:6px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 286px;gap:24px;align-items:start}.play-area{min-width:0}.yard-panel{background:#fffefa;border:1px solid #d9ddcf;border-radius:12px;padding:19px 22px 16px;box-shadow:0 4px 14px #2b433207}.yard-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.yard-heading .eyebrow{color:#3e5740}.board-size{font-size:10px;color:#86917b;margin-left:12px}.compass{font-size:10px;color:#5d7257}.compass span{padding:0 9px;color:#b0b8a4}.yard-grid{display:grid;grid-template-columns:20px repeat(var(--size),minmax(0,1fr));gap:2px;user-select:none}.coordinate{font-size:9px;color:#88917e;display:flex;align-items:center;justify-content:center;font-weight:600;min-height:16px}.cell{position:relative;aspect-ratio:1;border:0;padding:2px;background:#e5ebd5;border-radius:3px;color:var(--ink);min-width:0;isolation:isolate}.cell.alternate{background:#73a34e}.cell:disabled{opacity:1}.cell:not(:disabled):hover{box-shadow:inset 0 0 0 2px #8a9c67}.cell.base{background:#edd9cc}.cell.blue-base{background:#d5e1e5}.base-ring{position:absolute;inset:4px;border:1px dashed #bd514780;border-radius:50%;z-index:-1}.blue-base .base-ring{border-color:#49759a80}.gnome-token,.flag-token{position:absolute;inset:0;display:block}.gnome-token .icon{height:87%;width:87%;margin:auto;filter:drop-shadow(0 1px 1px #0002)}.gnome-number{position:absolute;bottom:1px;right:1px;font-size:clamp(6px,.75vw,10px);font-weight:800;line-height:1.2;background:#fff8e9;border-radius:3px;padding:0 2px;color:currentColor}.flag-token{inset:2px}.flag-token.with-gnome{inset:0 50% 40% 0;z-index:3}.carried-flag{position:absolute;right:-2px;top:-3px;width:50%;height:55%;z-index:5;filter:drop-shadow(0 0 1px #fff)}.red{color:var(--red)}.blue{color:var(--blue)}.red-bg{background:var(--red)}.blue-bg{background:var(--blue)}.cell.selected-gnome{box-shadow:inset 0 0 0 2px #b3872c;background:#f2e3aa}.cell.legal{background:#b9c993;box-shadow:inset 0 0 0 1px #809654}.cell.target{background:#efda99;box-shadow:inset 0 0 0 3px #ac8229}.move-dot{position:absolute;inset:auto auto 2px 2px;background:#405d35;color:white;border-radius:50%;width:15px;height:15px;display:grid;place-items:center;font-size:9px;font-weight:bold;z-index:6}.yard-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px;font-size:8px;letter-spacing:.6px;color:#74816c}.legend-dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:5px}.yard-seed{max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#929986}.yard-seed b{font-weight:500;letter-spacing:0;color:#62735b;margin-left:5px}.hand-panel{background:#efeee5;border:1px solid #dfdfd2;border-radius:12px;padding:23px;margin-top:18px;min-height:258px}.hand-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.hand-heading .eyebrow{margin-bottom:7px}.hand-heading h2{font-size:22px;letter-spacing:-.3px;font-weight:500;margin:0}.count-pill{font-size:10px;white-space:nowrap;background:#dfe5d4;color:#4c6541;border-radius:20px;padding:7px 10px}.hand-help{font-size:11px;line-height:1.5;color:#78816e;margin:9px 0 16px;min-height:17px}.cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.movement-card{min-width:0;display:flex;flex-direction:column;align-items:flex-start;position:relative;background:#fffdf5;border:1px solid #d5d9c9;border-radius:7px;padding:10px 11px;color:var(--ink);box-shadow:0 3px 0 #daddcf;transition:transform .12s,border-color .12s}.movement-card:not(:disabled):hover{transform:translateY(-3px);border-color:#80916b}.movement-card.chosen{background:#e8eddb;border:2px solid #627b43;padding:9px 10px;transform:translateY(-3px);box-shadow:0 3px 0 #81955e}.card-top{font-size:7px;letter-spacing:1px;display:flex;justify-content:space-between;width:100%;color:#8b937f}.card-symbol{display:flex;align-items:center;gap:7px;font-size:31px;line-height:1.1;margin:12px 0 8px;color:#526b43}.card-symbol b{font-family:Georgia,serif;font-weight:400;font-size:35px}.movement-card strong{font-size:11px}.movement-card small{font-size:8px;color:#8d9580;margin-top:5px}.movement-card.retained{opacity:.48;box-shadow:none;background:#e8e8df}.hand-actions{margin-top:19px;display:flex;align-items:center;justify-content:space-between;gap:12px}.hand-actions>span{font-size:10px;color:#7b8471}.privacy-panel{display:flex;align-items:center;justify-content:center;gap:24px;padding:25px 8px}.privacy-emblem{width:72px;height:90px;flex-shrink:0;transform:rotate(-6deg)}.privacy-panel h2{font-size:29px;font-weight:500;margin-bottom:9px}.privacy-panel p:not(.eyebrow){font-size:12px;color:#7b8473;line-height:1.7;margin-bottom:18px}.sidebar{display:flex;flex-direction:column;gap:14px}.round-panel{background:#e7ecdc;border:1px solid #dce3cf;border-radius:11px;padding:20px}.round-top{display:flex;justify-content:space-between;align-items:center}.round-top .eyebrow{margin:0}.round-top>strong{font-size:33px;font-family:Georgia,serif;font-weight:400;line-height:1;color:#59724a}.turn-status{display:flex;align-items:center;gap:9px;margin-top:17px}.turn-status h2{font-size:22px;font-weight:500;margin:0}.turn-dot{width:8px;height:8px;border-radius:50%}.round-panel p{font-size:11px;color:#7a856f;line-height:1.6;margin:10px 0 16px}.turn-track{display:flex;gap:7px}.turn-step{height:27px;flex:1;border:1px solid #cdd6bf;border-radius:5px;font-size:10px;font-weight:700;display:grid;place-items:center;background:#f8f9f0}.turn-step.current{border:2px solid currentColor}.turn-step.done{opacity:.4}.side-card{border:1px solid var(--line);border-radius:10px;padding:18px;background:#fafaf3}.side-card>.eyebrow{margin-bottom:15px}.team-status{display:flex;align-items:center;gap:10px;margin:15px 0}.team-flag{width:28px;height:29px}.team-status strong{font-size:12px;display:block}.team-status small{display:block;font-size:10px;color:#89917f;margin-top:4px}.status-light{width:6px;height:6px;background:#8dA572;border-radius:50%;margin-left:auto}.status-light.away{background:#cb9352}.small-note{font-size:10px;line-height:1.6;color:#88917b;margin:14px 0 0}.rosters{display:flex;flex-direction:column;gap:9px}.roster{display:flex;gap:7px}.roster-gnome{display:flex;align-items:center;flex-direction:column;flex:1;min-width:0;background:#f0f0e6;border:1px solid transparent;border-radius:6px;padding:4px}.roster-gnome .icon{width:30px;height:34px}.roster-gnome strong{font-size:9px}.roster-gnome small{font-size:8px;color:#89927d;margin-top:3px}.roster-gnome:not(:disabled):hover{background:#e6ead8}.roster-gnome.picked{border-color:#8cA064;background:#e4e9d4}.used-row{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11px;margin-top:12px;min-height:24px}.used-row>div{display:flex;gap:5px}.used-card{display:inline-block;border:1px solid #d9decc;border-radius:4px;background:#f0f2e7;padding:4px 7px;font-size:10px;color:#60764d}.muted{font-size:10px;color:#979e8c}summary{list-style:none;cursor:pointer;font-size:12px;font-weight:600;display:flex;justify-content:space-between}summary::-webkit-details-marker{display:none}summary span{color:#929d82}.guide{font-size:11px;line-height:1.7;color:#77846b}.guide p{margin:14px 0 0}.obstacle-legend{display:flex;justify-content:space-between;margin-top:12px;font-size:9px}.obstacle-legend span{display:flex;flex-direction:column;align-items:center}.obstacle-legend .icon{width:30px;height:30px;margin-bottom:4px}.move-log{padding-left:14px;font-size:10px;line-height:1.7;color:#7c876f;margin-bottom:0}.move-log li{padding:7px 0;border-bottom:1px solid #e4e7da}.site-footer{display:flex;justify-content:space-between;padding:27px 0 30px;color:#949c89;font-size:8px;letter-spacing:1px}.site-footer span:first-child{font-family:Georgia,serif;font-style:italic;font-size:12px;letter-spacing:0}.win-panel{text-align:center;padding:8px}.win-panel h2{font-size:31px;margin:7px 0}.win-panel p:not(.eyebrow){font-size:12px;color:#7c886f}.win-icon{display:block;width:48px;height:48px;margin:0 auto 12px}.error{font-size:12px;color:var(--red);margin:14px 0 0}dialog{border:1px solid #d2d9c5;border-radius:15px;padding:30px;max-width:490px;width:calc(100% - 30px);background:#f9f9f0;color:var(--ink);box-shadow:0 20px 90px #18261c33}dialog::backdrop{background:#23372977;backdrop-filter:blur(4px)}dialog h2{font-size:31px;font-weight:400;margin:0 0 12px}dialog p{font-size:12px;line-height:1.6;color:#7a856e}dialog label{display:block;font-size:11px;font-weight:700;margin:22px 0 8px}dialog input{width:100%;border:1px solid #c9d1bb;border-radius:5px;padding:12px;color:var(--ink);background:#fffefa}.dialog-actions{display:flex;justify-content:space-between;gap:10px;margin-top:25px}.dialog-actions button{padding:11px;font-size:11px}
@media(min-width:1250px){.yard-grid{max-width:620px;margin:auto}.yard-heading,.yard-footer{max-width:620px;margin-left:auto;margin-right:auto}}
@media(max-width:1000px){.page-shell{padding:0 25px}.game-layout{grid-template-columns:minmax(0,1fr) 250px;gap:18px}.prototype-badge{display:none}.yard-panel{padding:15px}.hand-panel{padding:18px}.movement-card{padding:8px}.movement-card.chosen{padding:7px}.card-symbol{font-size:26px;gap:4px}.card-symbol b{font-size:29px}.movement-card strong{font-size:10px}.hand-heading h2{font-size:20px}.privacy-panel{gap:15px}.privacy-emblem{width:55px}.privacy-panel h2{font-size:25px}.header-note{font-size:8px}.yard-seed{max-width:30%}}
@media(max-width:760px){.page-shell{padding:0 16px}.site-header{height:85px}.header-note{display:none}.page-title{padding:26px 0 22px}h1{font-size:31px}.page-title .eyebrow{font-size:7px;letter-spacing:1px}.game-layout{display:flex;flex-direction:column;gap:18px}.play-area{width:100%}.yard-grid{gap:2px;grid-template-columns:15px repeat(var(--size),minmax(0,1fr))}.yard-panel{padding:14px 10px}.sidebar{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:12px}.round-panel{grid-column:1/-1}.round-top{float:right;gap:15px}.turn-status{margin-top:0}.turn-track{max-width:280px}.hand-panel{margin-top:14px;padding:17px 13px}.hand-heading h2{font-size:21px}.hand-help{font-size:11px}.cards{gap:6px}.card-top{font-size:6px}.movement-card{padding:7px 6px}.movement-card.chosen{padding:6px 5px}.card-symbol{font-size:25px;gap:3px;margin:12px 0 8px}.card-symbol b{font-size:28px}.movement-card strong{font-size:10px}.movement-card small{font-size:7px}.hand-actions{gap:8px}.hand-actions .primary{font-size:10px;padding:12px}.hand-actions>span{max-width:40%;font-size:9px;line-height:1.5}.hand-actions .text-button{font-size:10px}.privacy-panel{padding:18px 3px;gap:10px}.privacy-panel h2{font-size:25px}.privacy-emblem{width:50px}.privacy-panel .primary{font-size:10px;padding:12px}.privacy-panel .eyebrow{font-size:8px}.gnome-number{font-size:7px}.move-dot{width:12px;height:12px;font-size:8px;bottom:0;left:0}.side-card{padding:15px}.yard-footer{font-size:7px;gap:5px}.yard-seed{max-width:30%}.site-footer{font-size:6px;gap:10px}.side-card .eyebrow{font-size:8px}.team-status{gap:6px}.team-status strong{font-size:11px}.team-status small{font-size:9px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* Phase 2: compact Yard, legible hazards and explicit targeting. */
.hijinx-card{background:#faf0d9;border-color:#dbc6a0}.hijinx-card .card-top{color:#9c783b}.hijinx-card .card-symbol{height:43px;margin:7px 0}.hijinx-card .card-symbol .icon{width:43px;height:43px}.hijinx-card strong{line-height:1.25;min-height:27px}.cards{align-items:stretch}.fixture{position:absolute;inset:5%;z-index:0;opacity:.95}.fixture:has(+.gnome-token){opacity:.6}.sprinkler-arrow{position:absolute;top:0;right:0;font-size:20px;font-weight:bold;color:#316578;line-height:1}.sprinkler-state{position:absolute;bottom:0;left:0;font-size:7px;font-weight:800;color:#53665d;background:#f3f4df;padding:1px 2px;border-radius:2px}.sprinkler.on .sprinkler-state{color:white;background:#438b9c}.cell.wet-cell{background:#c2ded8;background-image:repeating-linear-gradient(135deg,transparent,transparent 6px,#95c9d144 6px,#95c9d144 8px)}.cell.beam-preview{outline:2px dashed #438a9d;outline-offset:-3px}.cell.legal{box-shadow:inset 0 0 0 2px #849a4a}.cell.target{box-shadow:inset 0 0 0 3px #b48937}.direction-arrow{position:absolute;right:-3px;top:-5px;font-size:25px;font-weight:bold;color:#765724;text-shadow:0 1px white;z-index:8}.bee-preview{position:absolute;inset:2px;z-index:8;background:#fff5b9aa;border-radius:50%}.ghost{position:absolute;inset:5px;display:grid;place-items:center;border:2px dashed currentColor;background:#fffcebbb;z-index:7;font-size:10px;font-weight:800;border-radius:6px}.comic-pop{position:absolute;left:50%;top:0;z-index:20;transform:translate(-50%,-30%) rotate(-9deg);padding:4px 7px;border:2px solid #534b34;border-radius:5px;background:#f8df85;color:#53442f;font-size:12px;font-weight:900;white-space:nowrap;box-shadow:2px 3px 0 #534b34;pointer-events:none;animation:comic-pop 1.1s both}.last-effects{font-size:10px;margin:12px auto 0;max-width:620px;color:#a38448;display:flex;flex-wrap:wrap;align-items:center;gap:5px}.last-effects>span{font-size:8px;letter-spacing:1px;color:#8b927d;margin-right:5px}.last-effects b{background:#f4e4ba;padding:4px 6px;border-radius:3px;color:#84632d}.targeting-panel{margin-top:18px;padding:15px;border:1px solid #d7d9c7;background:#f7f7ed;border-radius:8px}.targeting-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:12px}.targeting-heading .text-button{padding:0;font-size:10px}.targeting-panel p{font-size:11px;line-height:1.6;color:#7c856b;margin:10px 0}.direction-controls,.distance-controls{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0;align-items:center}.direction-controls button,.distance-controls button{padding:8px 10px;font-size:11px}.direction-controls button:disabled{opacity:.4}.distance-controls span{font-size:10px;margin-right:7px;color:#7e886e}.secondary.selected-control{background:#e6d7a5;border-color:#b79b50}.preview-summary{padding:9px;background:#e8ecdb;border-radius:4px}.preview-effects{font-size:10px;color:#886b35;line-height:1.8}.used-row>div{flex-wrap:wrap;justify-content:flex-end;max-width:80%}.used-card{font-size:9px}.yard-grid{max-width:510px;margin:auto}.yard-heading,.yard-footer{max-width:510px}.page-title{padding-top:26px;padding-bottom:23px}.site-header{height:92px}
@keyframes comic-pop{0%{opacity:0;scale:.6}15%,70%{opacity:1;scale:1}100%{opacity:0;scale:1.1}}
@media(max-width:760px){.hijinx-card .card-symbol,.hijinx-card .card-symbol .icon{height:33px;width:33px}.hijinx-card strong{font-size:9px;min-height:34px}.hijinx-card small{line-height:1.3}.hand-heading h2{font-size:19px}.targeting-panel{padding:11px}.direction-controls button{padding:8px;font-size:10px}.sprinkler-arrow{font-size:16px}.sprinkler-state{font-size:6px}.ghost{font-size:8px;inset:2px}.comic-pop{font-size:10px}.last-effects{font-size:8px}.last-effects b{padding:3px}.direction-arrow{font-size:20px}}
/* Phase 3 laboratory: independent DOM keeps setup inputs stable while games run. */
.lab-shell{max-width:1320px;margin:20px auto 0;padding:0 44px}.lab-panel{border:1px solid #d7dccd;background:#f0f2e7;border-radius:10px;padding:18px 22px}.lab-panel>summary{font-size:15px}.lab-panel>summary>span{font-size:9px;letter-spacing:1px}.lab-columns{display:grid;grid-template-columns:1fr 1fr;gap:35px;margin-top:22px}.lab-panel h2{font-size:21px;font-weight:500;margin-bottom:14px}.lab-panel h3{font-size:14px}.lab-panel label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:600;margin:10px 0;color:#50644a}.lab-panel input,.lab-panel select{font:inherit;padding:9px 10px;border:1px solid #c8d1bb;background:#fffdf5;border-radius:5px;min-width:0;color:#324731;width:100%}.lab-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.lab-buttons{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:13px}.lab-buttons>span{font-size:11px}.lab-buttons label{flex:1;min-width:180px}.lab-panel p[role=status]{font-size:12px;color:#647a55}.lab-panel progress{width:100%;height:8px;accent-color:#527442}.lab-panel [role=alert]{font-size:12px;color:var(--red)}.watch-controls{background:#e6ecd9;border:1px solid #cbd6bd;border-radius:8px;padding:15px 20px;margin-top:12px}.watch-controls[hidden]{display:none}.watch-buttons{display:flex;gap:8px;flex-wrap:wrap}.watch-controls p{margin:11px 0 0;font-size:12px;line-height:1.5}.watch-controls #ai-explanation{color:#53684a}.lab-shell button:disabled{opacity:.45}.results-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:23px 0 10px}.results-heading h2,.results-heading h3{margin:0}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#d9dfcd;border:1px solid #d9dfcd;border-radius:5px;overflow:hidden;margin-top:17px}.stats-grid>div{background:#fafbf3;padding:10px 12px;display:flex;justify-content:space-between;align-items:center;gap:9px;font-size:10px}.stats-grid strong{font-size:12px;white-space:nowrap}.result-table-wrap{overflow:auto;border:1px solid #d5ddc8;border-radius:5px}.result-table-wrap table{border-collapse:collapse;width:100%;font-size:11px;text-align:left;background:#fcfcf4}.result-table-wrap th,.result-table-wrap td{padding:9px;border-bottom:1px solid #e1e5d5;white-space:nowrap}.result-table-wrap th{background:#e8edde}.result-table-wrap .secondary{font-size:10px;padding:6px 8px}.computer-panel{padding:20px 7px}.computer-panel h2{font-size:25px;font-weight:400}.computer-panel p{font-size:12px;line-height:1.7;color:#6b7d5b}.ai-log{display:block;color:#4e653f;font-weight:600;margin:0 0 4px}.max-speed .comic-pop{display:none}.max-speed *{animation:none!important;transition:none!important}
@media(max-width:900px){.stats-grid{grid-template-columns:1fr 1fr}.lab-shell{padding:0 25px}.lab-columns{gap:20px}}
@media(max-width:600px){.lab-shell{padding:0 16px;margin-top:15px}.lab-panel{padding:15px}.lab-columns{grid-template-columns:1fr;gap:22px}.stats-grid{grid-template-columns:1fr}.results-heading{align-items:flex-start;flex-direction:column}.watch-controls{padding:14px}.watch-buttons .secondary{padding:9px 11px}.lab-panel summary{font-size:13px}}
.watching-computers .site-header{height:65px}.watching-computers .page-title{padding:14px 0}.watching-computers .page-title h1{font-size:28px}.watching-computers .page-title .eyebrow{display:none}.watching-computers .yard-grid{max-width:430px}.watching-computers .yard-heading,.watching-computers .yard-footer{max-width:430px}.watching-computers .hand-panel{min-height:160px}.watching-computers .computer-panel{padding:5px}

.dazed-badge { position: absolute; top: 0; right: 0; z-index: 6; color: #67459c; background: #fff0ad; border-radius: 4px; padding: 1px 3px; font-size: 10px; font-weight: 800; pointer-events: none; }

.hedge-strip { position:absolute; background:#3c6845; pointer-events:none; }
.hedge-strip.horizontal { left:-1px; right:-1px; top:20%; bottom:20%; }
.hedge-strip.vertical { top:-1px; bottom:-1px; left:20%; right:20%; }
.hedge-strip.horizontal.hedge-start { left:12%; border-radius:8px 0 0 8px; }
.hedge-strip.horizontal.hedge-end { right:12%; border-radius:0 8px 8px 0; }
.hedge-strip.vertical.hedge-start { top:12%; border-radius:8px 8px 0 0; }
.hedge-strip.vertical.hedge-end { bottom:12%; border-radius:0 0 8px 8px; }

.gnome-token .gnome-portrait { display:block; width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 1px 2px #182d2070); }
.gnome-token .gnome-number { z-index:2; background:#fff9e9; border:1px solid #45634480; }
.roster-gnome { justify-content:flex-start; gap:2px; padding:5px 2px; }
.roster-gnome .gnome-portrait { width:45px; height:49px; max-width:100%; object-fit:contain; filter:drop-shadow(0 1px 2px #203c303d); }
.roster-gnome strong { min-height:22px; line-height:1.2; overflow-wrap:anywhere; text-align:center; color:var(--ink); }
.roster-gnome small { white-space:nowrap; }
.gnome-bios { display:grid; gap:9px; margin-top:14px; }
.gnome-bio { display:flex; align-items:center; gap:9px; padding:5px; border-radius:7px; background:#eef0e4; border-left:3px solid currentColor; }
.gnome-bio.blue { background:#e9eef0; }
.gnome-bio .gnome-portrait { width:42px; height:48px; flex:none; object-fit:contain; }
.gnome-bio strong { display:block; font-size:10px; line-height:1.2; }
.gnome-bio p { margin:3px 0 0; font-size:9px; line-height:1.35; color:#647060; }
.tunnel-token { z-index:1; opacity:1; }
.tunnel-token .icon { filter:drop-shadow(0 1px 2px #231733a0); }
.tunnel-label { position:absolute; bottom:0; left:0; min-width:13px; border-radius:3px; padding:1px 2px; background:#f7e7c0; color:#4b3660; font-size:8px; font-weight:900; line-height:1; }
@media(max-width:760px) {
  .roster-gnome .gnome-portrait { width:39px; height:43px; }
  .roster-gnome strong { font-size:8px; }
}

/* Lawn checkerboard: texture sits beneath pieces and leaves targeting readable. */
.cell { background-color:#86b65c; }
.cell:where(.alternate) { background-color:#73a34e; }
.grass-texture { position:absolute; inset:0; border-radius:inherit; pointer-events:none; z-index:-1; opacity:.42;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cg fill='none' stroke='%233f752e' stroke-width='1' stroke-linecap='round' opacity='.55'%3E%3Cpath d='M7 13l-2-4m2 4l2-6M29 8l-1-4m1 4l3-5M18 32l-3-5m3 5l1-7M39 37l-2-5m2 5l3-6M5 45l2-5M35 22l-2-4'/%3E%3C/g%3E%3Cg stroke='%23d0e397' stroke-width='1' opacity='.65'%3E%3Cpath d='M11 18l1-4M23 15l-1-3M28 43l2-5M44 12l-1-4M9 35l-1-3'/%3E%3C/g%3E%3C/svg%3E"); background-size:48px 48px; }
.cell.alternate .grass-texture { background-position:19px 11px; }
.fence-rail { position:absolute; pointer-events:none; z-index:5; filter:drop-shadow(1px 2px 1px #30432666); }
.fence-rail.north,.fence-rail.south { left:-1px; right:-1px; height:8px; background:repeating-linear-gradient(90deg,transparent 0 7px,#faf0d3 7px 11px,transparent 11px 20px),linear-gradient(transparent 2px,#c9b78f 2px 4px,transparent 4px 6px,#e6d8b3 6px 8px); }
.fence-rail.north { top:2px; } .fence-rail.south { bottom:2px; }
.fence-rail.west,.fence-rail.east { top:-1px; bottom:-1px; width:8px; background:repeating-linear-gradient(0deg,transparent 0 7px,#faf0d3 7px 11px,transparent 11px 20px),linear-gradient(90deg,transparent 2px,#c9b78f 2px 4px,transparent 4px 6px,#e6d8b3 6px 8px); }
.fence-rail.west { left:2px; } .fence-rail.east { right:2px; }
.site-actions{display:flex;align-items:center;gap:8px}.site-actions .secondary{white-space:nowrap}
@media(max-width:680px){.site-actions{gap:5px}.site-actions .secondary{font-size:10px;padding:9px 8px}.header-note{display:none}}

/* Three-second, code-native slapstick shorts. The Yard remains visible behind them. */
.hijinx-cinema{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;pointer-events:none;padding:16px;font-family:Arial,Helvetica,sans-serif}
.hijinx-cinema[hidden]{display:none}.cinema-backdrop{position:absolute;inset:0;background:#16291fc7;animation:cinema-fade var(--clip-duration) both}
.cinema-card{position:relative;width:min(560px,95vw);overflow:hidden;border:7px solid #fff8e8;border-radius:20px;background:#fff8e8;box-shadow:0 16px 0 #1f3324,0 26px 55px #08160dbb;transform:rotate(-1deg);animation:cinema-card-in var(--clip-duration) both}
.cinema-header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:7px 12px;color:#48604a}.cinema-header span{font-size:10px;font-weight:900;letter-spacing:2px}.cinema-header strong{font-family:Georgia,serif;font-size:17px;color:#8d4d38}
.cinema-stage{position:relative;height:285px;overflow:hidden;border:3px solid #3b4937;border-radius:11px;background:radial-gradient(circle at 82% 19%,#fff6b9 0 8%,transparent 9%),linear-gradient(#a9dfe5 0 69%,#b8d77c 69% 100%)}
.cinema-stage>*{position:absolute}.cinema-ground{bottom:0;left:0;right:0;height:38px;background:repeating-linear-gradient(95deg,#62a354 0 15px,#6bab57 15px 28px);border-top:5px solid #457944}.cinema-sun{width:55px;height:55px;border-radius:50%;top:21px;right:48px;background:#fff2a7;box-shadow:0 0 0 10px #fff2a755}
.cinema-cloud{width:80px;height:19px;border-radius:22px;background:#fffce5ba;top:40px;left:35px}.cinema-cloud:before,.cinema-cloud:after{content:'';position:absolute;border-radius:50%;background:inherit;width:40px;height:33px;bottom:0;left:12px}.cinema-cloud:after{width:32px;height:28px;left:42px}.cloud-two{left:auto;right:90px;top:75px;transform:scale(.7)}
.cinema-scenery{bottom:20px;width:48px;height:48px;opacity:.58}.scenery-one{left:9px}.scenery-two{right:13px}.cinema-prop,.cinema-extra{width:96px;height:96px;bottom:24px;left:60%;filter:drop-shadow(4px 7px 1px #243b2244)}.cinema-extra{display:none}
.cinema-actor,.cinema-buddy{width:130px;height:160px;object-fit:contain;bottom:17px;left:22%;filter:drop-shadow(3px 6px 2px #162e2570);transform-origin:50% 85%}.cinema-buddy{display:none;left:10%}
.cinema-hat{left:38%;top:28px;font-size:47px;color:#b84e43;text-shadow:2px 3px #532d30;opacity:0}.cinema-spray{top:95px;left:27%;font-size:56px;font-weight:bold;color:#6cb9d9;letter-spacing:-10px;opacity:0}.cinema-dust{bottom:65px;left:51%;font-size:37px;color:#f9ec84;white-space:nowrap;text-shadow:2px 3px #9e644b;opacity:0}
.cinema-callout{top:15px;left:50%;min-width:150px;transform:translateX(-50%) rotate(-7deg) scale(.4);opacity:0;text-align:center;font-size:clamp(25px,8vw,51px);letter-spacing:-3px;color:#1d463f;-webkit-text-stroke:1px #fff8e8;text-shadow:3px 4px #f8d872,6px 7px #38583e;animation:cinema-word var(--clip-duration) both}
.cinema-joke{margin:0;padding:12px 14px 10px;text-align:center;font-family:Georgia,serif;font-style:italic;font-size:17px;color:#4d6047}.cinema-progress{height:6px;background:#dfb968;transform-origin:left;animation:cinema-progress var(--clip-duration) linear both}
@keyframes cinema-fade{0%,100%{opacity:0}8%,91%{opacity:1}}@keyframes cinema-card-in{0%{opacity:0;transform:translateY(70px) rotate(-10deg) scale(.8)}12%,90%{opacity:1;transform:rotate(-1deg) scale(1)}100%{opacity:0;transform:translateY(-30px) rotate(3deg) scale(.96)}}
@keyframes cinema-word{0%,28%{opacity:0;transform:translateX(-50%) rotate(-18deg) scale(.4)}38%,73%{opacity:1;transform:translateX(-50%) rotate(-7deg) scale(1)}80%,100%{opacity:0;transform:translateX(-50%) rotate(8deg) scale(1.3)}}@keyframes cinema-progress{to{transform:scaleX(0)}}
@keyframes clip-whack{0%,22%{transform:translateX(-45px)}34%{transform:translateX(55px) rotate(-4deg)}42%{transform:translateX(60px) rotate(34deg)}50%,72%{transform:translateX(95px) rotate(-65deg)}83%{transform:translateX(70px) rotate(15deg)}100%{transform:translateX(70px)}}
@keyframes clip-fling{0%,20%{transform:translateX(0)}40%{transform:translateX(30px) rotate(-15deg)}65%{transform:translateX(245px) rotate(390deg)}80%,100%{transform:translateX(255px) rotate(405deg)}}
@keyframes clip-shower{0%,22%{transform:translateX(50px)}40%{transform:translateX(30px) rotate(-20deg)}65%{transform:translateX(105px) rotate(380deg)}85%,100%{transform:translateX(110px) rotate(365deg)}}
@keyframes clip-tumble{0%,22%{transform:translateX(-55px)}42%{transform:translateX(45px) rotate(-10deg)}55%{transform:translateX(90px) translateY(35px) rotate(105deg) scaleY(.64)}75%,100%{transform:translateX(100px) translateY(35px) rotate(95deg) scaleY(.74)}}
@keyframes clip-zigzag{0%,10%{transform:translate(0)}25%{transform:translate(70px,-25px) rotate(13deg)}42%{transform:translate(-15px,12px) rotate(-17deg)}60%{transform:translate(145px,-35px) rotate(18deg)}78%,100%{transform:translate(225px,17px) rotate(55deg)}}
@keyframes clip-banana{0%,18%{transform:translateX(-80px)}35%{transform:translateX(50px)}56%{transform:translate(105px,-42px) rotate(150deg)}75%,100%{transform:translate(180px,20px) rotate(355deg)}}
@keyframes clip-diver{0%,16%{transform:translateX(-40px) scale(1)}33%{transform:translate(-85px,30px) scale(.12);opacity:1}37%,47%{opacity:0;transform:translate(-85px,30px) scale(.12)}60%{opacity:1;transform:translate(205px,-25px) scale(1.12)}76%,100%{transform:translate(195px,2px) rotate(18deg)}}
@keyframes clip-leap{0%,15%{transform:translateX(-55px)}38%{transform:translate(55px,-100px) rotate(-18deg)}52%{transform:translate(100px,-105px) rotate(20deg)}69%{transform:translate(155px,25px) rotate(65deg)}82%,100%{transform:translate(165px,20px) rotate(90deg)}}
@keyframes clip-yoink{0%,20%{transform:translateX(145px)}44%{transform:translateX(110px) rotate(-15deg)}62%{transform:translateX(-20px) rotate(-35deg)}75%,100%{transform:translateX(-30px) rotate(55deg)}}
@keyframes clip-anchor{0%,56%{transform:none}68%{transform:translateX(-30px) rotate(-20deg)}78%,100%{transform:translateX(-35px) rotate(8deg)}}
@keyframes clip-swing{0%,25%{transform:rotate(-40deg)}45%{transform:rotate(55deg)}70%,100%{transform:rotate(95deg)}}@keyframes clip-slide{0%,16%{transform:translateX(-160px) rotate(-15deg)}43%{transform:translateX(0) rotate(7deg)}70%,100%{transform:translateX(0)}}
@keyframes clip-squirt{0%,25%{opacity:0;transform:scaleX(.2)}36%,70%{opacity:1;transform:scaleX(1)}90%,100%{opacity:0}}@keyframes clip-spark{0%,30%{opacity:0;transform:scale(.2)}42%,65%{opacity:1;transform:scale(1.3) rotate(20deg)}85%,100%{opacity:0;transform:scale(.8)}}@keyframes clip-hat{0%,36%{opacity:0;transform:translate(0,0)}44%{opacity:1;transform:translate(30px,-40px) rotate(20deg)}75%,100%{opacity:1;transform:translate(185px,-5px) rotate(370deg)}}
.cinema-rake .cinema-actor{animation:clip-whack var(--clip-duration) both}.cinema-rake .cinema-prop{transform-origin:70% 80%;animation:clip-swing var(--clip-duration) both}.cinema-rake .cinema-hat,.cinema-banana .cinema-hat{animation:clip-hat var(--clip-duration) both}
.cinema-blower .cinema-prop{left:5%;bottom:40px}.cinema-blower .cinema-actor{left:37%;animation:clip-fling var(--clip-duration) both}.cinema-blower .cinema-spray{display:block;animation:clip-squirt var(--clip-duration) both}
.cinema-sprinklerOn .cinema-prop,.cinema-rotate .cinema-prop,.cinema-moveSprinkler .cinema-prop{left:34%}.cinema-sprinklerOn .cinema-actor,.cinema-rotate .cinema-actor,.cinema-moveSprinkler .cinema-actor{left:50%;animation:clip-shower var(--clip-duration) both}.cinema-sprinklerOn .cinema-spray,.cinema-rotate .cinema-spray,.cinema-moveSprinkler .cinema-spray{left:43%;animation:clip-squirt var(--clip-duration) both}
.cinema-rotate .cinema-prop{transform-origin:50% 80%;animation:clip-swing var(--clip-duration) both}.cinema-rotate .cinema-actor{animation:clip-zigzag var(--clip-duration) both}.cinema-moveSprinkler .cinema-prop{animation:clip-slide var(--clip-duration) both}
.cinema-mud .cinema-actor{animation:clip-tumble var(--clip-duration) both}.cinema-mud .cinema-prop{left:49%;bottom:18px;height:53px}.cinema-mud .cinema-dust,.cinema-rake .cinema-dust,.cinema-yoink .cinema-dust{animation:clip-spark var(--clip-duration) both}
.cinema-bees .cinema-prop{left:7%;top:100px;animation:clip-zigzag var(--clip-duration) both}.cinema-bees .cinema-actor{animation:clip-zigzag var(--clip-duration) both}.cinema-bees .cinema-spray{color:#ecc047;animation:clip-squirt var(--clip-duration) both}
.cinema-banana .cinema-prop{left:50%;bottom:26px;width:65px;height:65px}.cinema-banana .cinema-actor{animation:clip-banana var(--clip-duration) both}.cinema-banana .cinema-dust{animation:clip-spark var(--clip-duration) both}
.cinema-moveTunnel .cinema-prop{left:8%;bottom:17px}.cinema-moveTunnel .cinema-extra{display:block;left:73%;bottom:17px}.cinema-moveTunnel .cinema-actor{animation:clip-diver var(--clip-duration) both}.cinema-moveTunnel .cinema-scenery{display:none}.cinema-moveTunnel .cinema-dust{animation:clip-spark var(--clip-duration) both}
.cinema-hedgeJump .cinema-prop{left:45%;bottom:22px;width:100px;height:110px}.cinema-hedgeJump .cinema-actor{animation:clip-leap var(--clip-duration) both}.cinema-hedgeJump .cinema-hat{animation:clip-hat var(--clip-duration) both}
.cinema-yoink .cinema-prop{left:42%;top:80px;width:70px;height:70px;animation:clip-swing var(--clip-duration) both}.cinema-yoink .cinema-actor{left:32%;animation:clip-yoink var(--clip-duration) both}.cinema-yoink .cinema-buddy{display:block;animation:clip-anchor var(--clip-duration) both}.cinema-yoink .cinema-rope{display:block;top:145px;left:37%;width:30%;height:5px;border-top:4px dashed #a7763d;transform-origin:left;animation:clip-squirt var(--clip-duration) both}
@media(max-width:600px){.cinema-card{width:min(430px,95vw)}.cinema-stage{height:235px}.cinema-actor,.cinema-buddy{width:105px;height:132px}.cinema-prop,.cinema-extra{width:75px;height:75px}.cinema-header span{font-size:8px}.cinema-header strong{font-size:15px}.cinema-joke{font-size:14px}}
@media(prefers-reduced-motion:reduce){.cinema-card,.cinema-backdrop,.cinema-stage *,.cinema-progress{animation:none!important}.cinema-callout{opacity:1;transform:translateX(-50%) rotate(-7deg) scale(1)}}
