.snake-page{--snake-accent:#075a60;max-width:1600px;padding:12px var(--gutter) 90px;margin:auto}
.snake-masthead{display:flex;align-items:end;justify-content:space-between;gap:25px;padding:18px 0 35px;border-bottom:1px solid var(--line)}.snake-eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:9px;line-height:1.6;font-weight:500}.snake-masthead h1{font-size:clamp(70px,8vw,118px);letter-spacing:-.075em;line-height:1;margin:11px 0 0 -5px}.snake-byline{font-size:11px;line-height:1.8;color:var(--muted);padding-bottom:7px}.snake-byline a{color:var(--ink)}.snake-byline a:hover{text-decoration:underline;text-underline-offset:4px}
.snake-layout{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,1fr);gap:clamp(40px,6.5vw,110px);padding:30px 0 0;align-items:start}.snake-console{min-width:0;max-width:680px}.snake-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:22px}.snake-modes{display:flex;gap:20px}.snake-modes button{font-size:12px;padding:10px 0;min-height:44px;color:var(--muted);position:relative}.snake-modes button[aria-pressed=true]{color:var(--ink)}.snake-modes button[aria-pressed=true]:after{content:'';position:absolute;bottom:5px;left:0;right:0;height:1px;background:var(--ink)}.snake-text-button{font-size:11px;min-height:44px;padding:10px 0}.snake-text-button:hover:not(:disabled){text-decoration:underline;text-underline-offset:5px}.snake-text-button:disabled{opacity:.4}
.snake-scoreboard{display:flex;align-items:end;gap:clamp(25px,4.2vw,65px);padding:0 0 20px}.snake-scoreboard>div{display:flex;flex-direction:column;gap:4px}.snake-scoreboard span{font-size:9px;color:var(--muted)}.snake-scoreboard strong{font-size:29px;letter-spacing:-.04em;line-height:1;font-weight:400;font-variant-numeric:tabular-nums}.snake-scoreboard .snake-indicator{margin-left:auto;text-align:right;font-size:9px;line-height:1.5;max-width:85px;padding-bottom:2px}
.snake-stage{aspect-ratio:1;position:relative;background-color:#eceee7;background-image:linear-gradient(#d8ddd150 1px,transparent 1px),linear-gradient(90deg,#d8ddd150 1px,transparent 1px);background-size:5% 5%;border:1px solid #cbd3c6;isolation:isolate;overflow:hidden}#snake-board{display:block;width:100%;height:100%;touch-action:none;user-select:none;-webkit-user-select:none;outline-offset:-3px;cursor:crosshair}#snake-board:focus-visible{outline:2px solid var(--snake-accent)}
.snake-overlay{position:absolute;inset:0;display:grid;place-items:center;background:#f3f4edcf;backdrop-filter:blur(3px);padding:22px}.snake-overlay-card{text-align:center;width:100%;max-width:300px}.snake-frame-mark{display:block;width:24px;height:24px;margin:0 auto 23px;position:relative;background:linear-gradient(#c55a3a,#c55a3a) left top/8px 2px,linear-gradient(#c55a3a,#c55a3a) left top/2px 8px,linear-gradient(#c55a3a,#c55a3a) right top/8px 2px,linear-gradient(#c55a3a,#c55a3a) right top/2px 8px,linear-gradient(#c55a3a,#c55a3a) left bottom/8px 2px,linear-gradient(#c55a3a,#c55a3a) left bottom/2px 8px,linear-gradient(#c55a3a,#c55a3a) right bottom/8px 2px,linear-gradient(#c55a3a,#c55a3a) right bottom/2px 8px;background-repeat:no-repeat}.snake-overlay h2{font-size:clamp(27px,3vw,44px);letter-spacing:-.055em;line-height:1.1;margin:14px 0}.snake-overlay-card>p:not(.snake-eyebrow){color:#596258;font-size:12px;line-height:1.8}.snake-button{background:var(--ink);color:white;min-height:49px;min-width:180px;padding:13px 28px;font-size:12px;margin:25px 0 14px;transition:background .15s}.snake-button:hover:not(:disabled){background:var(--snake-accent)}.snake-overlay-card .snake-overlay-note{font-size:9px;line-height:1.6}
.snake-below-board{display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:61px}.snake-below-board>p{font-size:10px;color:var(--muted)}.snake-below-board>p span{margin:0 6px}.snake-below-board>div{display:flex;gap:25px}.snake-mobile-controls{display:none}.snake-storage-note{font-size:11px;color:var(--muted);line-height:1.6}.snake-storage-note a{text-decoration:underline;text-underline-offset:4px}.snake-storage-note:empty{display:none}
.snake-archive{padding-top:12px;min-width:0}.snake-photograph>a{display:block;background:#e1e5dd;overflow:hidden}.snake-photograph picture{display:block;aspect-ratio:1.25}.snake-photograph img{display:block;width:100%;height:100%;object-fit:cover}.snake-photograph figcaption{display:flex;justify-content:space-between;align-items:end;padding-top:21px;gap:20px;min-height:117px}.snake-photograph .snake-eyebrow{color:var(--muted)}.snake-photograph h2{font-size:clamp(29px,3vw,49px);letter-spacing:-.055em;line-height:1.1;margin:8px 0}.snake-photograph figcaption p{font-size:11px;color:var(--muted)}.snake-photograph figcaption>a{font-size:10px;padding:10px 0;border-bottom:1px solid var(--ink);flex-shrink:0}.snake-photograph figcaption>a:hover{color:var(--snake-accent)}.snake-discovery{display:grid;grid-template-columns:1fr auto;gap:12px 20px;margin-top:34px;font-size:10px;color:var(--muted)}.snake-discovery-line{height:2px;background:var(--line);grid-column:1/-1;overflow:hidden}.snake-discovery-line span{display:block;width:0;height:100%;background:var(--snake-accent);transition:width .2s}.snake-discovery>span{font-variant-numeric:tabular-nums;white-space:nowrap}.snake-archive-note{font-size:12px;color:var(--muted);line-height:1.8;margin-top:34px}.snake-portfolio-link{display:inline-block;font-size:11px;padding:0 0 5px;border-bottom:1px solid var(--line);margin-top:25px}.snake-portfolio-link:hover{border-color:var(--ink)}
.snake-rules{margin-top:75px;padding-top:35px;border-top:1px solid var(--line);display:grid;grid-template-columns:.8fr 2fr;gap:30px 8%}.snake-rules h2{font-size:clamp(30px,3vw,44px);letter-spacing:-.05em;line-height:1.1;margin:10px 0}.snake-rules ol{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:30px;counter-reset:rules}.snake-rules li{counter-increment:rules}.snake-rules li:before{content:'0' counter(rules);font-size:9px;color:var(--muted);display:block;margin-bottom:16px}.snake-rules strong{font-size:14px;font-weight:400;display:block;margin-bottom:8px}.snake-rules li span{font-size:11px;line-height:1.8;color:var(--muted);display:block}.snake-rules>p{font-size:10px;color:var(--muted);grid-column:2}
@media(min-width:1101px) and (min-height:800px){.snake-console{max-width:min(100%,calc(100svh - 360px))}}
@media(max-width:1100px){.snake-layout{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:35px}.snake-scoreboard{gap:27px}.snake-archive{padding-top:12px}.snake-photograph picture{aspect-ratio:.95}.snake-photograph h2{font-size:33px}.snake-discovery{grid-template-columns:1fr}.snake-discovery>span{display:none}.snake-archive-note{font-size:11px}.snake-rules{grid-template-columns:1fr 2fr;gap:30px 5%}.snake-rules ol{gap:20px}}
@media(max-width:720px){.snake-page{padding-top:4px;padding-bottom:55px}.snake-masthead{padding:13px 0 23px;align-items:center}.snake-eyebrow{font-size:8px;letter-spacing:.11em}.snake-masthead h1{font-size:70px;margin:9px 0 0 -2px}.snake-byline{font-size:9px;line-height:1.7;max-width:123px;padding:0}.snake-layout{display:flex;flex-direction:column;gap:30px;padding-top:13px}.snake-console{width:100%;max-width:530px;margin:0 auto}.snake-toolbar{margin-bottom:15px}.snake-modes{gap:24px}.snake-scoreboard{gap:35px;padding-bottom:16px}.snake-scoreboard strong{font-size:26px}.snake-scoreboard span{font-size:8px}.snake-scoreboard .snake-indicator{font-size:8px;max-width:68px}.snake-overlay{padding:17px}.snake-frame-mark{width:20px;height:20px;margin-bottom:17px}.snake-overlay h2{font-size:30px;margin:11px 0}.snake-overlay-card>p:not(.snake-eyebrow){font-size:11px}.snake-button{min-height:47px;margin:19px 0 10px;font-size:12px}.snake-overlay-card .snake-overlay-note{font-size:8px}.snake-below-board{min-height:53px}.snake-below-board>p{font-size:9px}.snake-below-board>p span{margin:0 4px}.snake-below-board>div{gap:22px}.snake-mobile-controls{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:10px 0 14px}.snake-mobile-controls>p{font-size:14px;letter-spacing:-.02em}.snake-mobile-controls>p span{display:block;font-size:10px;line-height:1.7;color:var(--muted);max-width:125px;margin-top:6px;letter-spacing:0}.snake-dpad{display:grid;grid-template-columns:repeat(3,46px);grid-template-rows:repeat(2,44px);gap:4px}.snake-direction{display:grid;place-items:center;border:1px solid #ccd2c7;background:#eef0e9;border-radius:4px;padding:10px;min-width:44px;min-height:44px;touch-action:manipulation}.snake-direction:active{background:#d5dfd2}.snake-direction:disabled{opacity:.5}.snake-direction-up{grid-column:2;grid-row:1}.snake-direction-left{grid-column:1;grid-row:2}.snake-direction-down{grid-column:2;grid-row:2}.snake-direction-right{grid-column:3;grid-row:2}.snake-arrow{width:21px;height:21px;fill:none;stroke:var(--ink);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.snake-arrow-left{transform:rotate(-90deg)}.snake-arrow-down{transform:rotate(180deg)}.snake-arrow-right{transform:rotate(90deg)}.snake-archive{width:100%;padding:0;display:grid;grid-template-columns:1fr}.snake-photograph{display:grid;grid-template-columns:1.2fr 1fr;gap:22px;align-items:center}.snake-photograph picture{aspect-ratio:1.18}.snake-photograph figcaption{display:block;min-height:0;padding:0}.snake-photograph h2{font-size:30px;margin:8px 0 6px}.snake-photograph figcaption p{font-size:10px}.snake-photograph figcaption>a{display:inline-block;font-size:9px;padding:6px 0;margin-top:11px}.snake-discovery{display:grid;grid-template-columns:1fr auto;margin-top:20px;gap:9px 14px;font-size:9px}.snake-discovery>span{display:block}.snake-archive-note,.snake-portfolio-link{display:none}.snake-rules{margin-top:44px;padding-top:25px;grid-template-columns:1fr;gap:25px}.snake-rules h2{font-size:33px}.snake-rules ol{grid-template-columns:1fr;gap:22px}.snake-rules li{display:grid;grid-template-columns:22px 1fr;gap:5px 13px}.snake-rules li:before{grid-row:1/3;margin:2px 0 0}.snake-rules strong{font-size:13px;margin:0}.snake-rules li span{font-size:11px;grid-column:2}.snake-rules>p{grid-column:1}.snake-page[data-state=running] .snake-indicator{color:var(--snake-accent)}}
@media(max-width:370px){.snake-byline{display:none}.snake-masthead h1{font-size:62px}.snake-scoreboard{gap:27px}.snake-scoreboard strong{font-size:24px}.snake-overlay h2{font-size:27px}.snake-overlay-card .snake-eyebrow{font-size:7px}.snake-frame-mark{margin-bottom:12px}.snake-overlay-card>p:not(.snake-eyebrow){font-size:10px}.snake-overlay-card .snake-overlay-note{font-size:8px}.snake-button{margin:15px 0 8px;min-height:44px;min-width:165px}.snake-below-board>p{max-width:126px;line-height:1.6}.snake-mobile-controls>p{font-size:12px}.snake-mobile-controls>p span{font-size:9px}.snake-dpad{grid-template-columns:repeat(3,44px)}.snake-photograph{gap:17px}.snake-photograph h2{font-size:26px}}
@media(pointer:coarse) and (min-width:721px){.snake-mobile-controls{display:flex;justify-content:flex-end;padding-top:10px}.snake-mobile-controls>p{display:none}.snake-dpad{display:flex;gap:7px}.snake-direction{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line)}.snake-arrow{width:20px;height:20px;fill:none;stroke:var(--ink);stroke-width:1.5}.snake-arrow-left{transform:rotate(-90deg)}.snake-arrow-down{transform:rotate(180deg)}.snake-arrow-right{transform:rotate(90deg)}}
@media(prefers-reduced-motion:reduce){.snake-overlay{backdrop-filter:none}.snake-discovery-line span,.snake-button{transition:none}}
/* Keep the playable board and its controls in view on laptop screens. */
@media(min-width:721px){.game-page .site-header{height:82px}.snake-page{padding-top:0}.snake-masthead{padding:8px 0 18px}.snake-masthead h1{font-size:72px;margin-top:8px}.snake-layout{grid-template-columns:minmax(280px,min(48vw,calc(100svh - 390px))) minmax(0,1fr);padding-top:18px;gap:clamp(40px,6.5vw,110px)}.snake-console{max-width:100%}.snake-toolbar{margin-bottom:10px}.snake-scoreboard{padding-bottom:16px;gap:28px}.snake-scoreboard strong{font-size:26px}.snake-scoreboard .snake-indicator{max-width:69px;font-size:8px}.snake-archive{max-width:680px;width:100%;justify-self:end;padding-top:0}.snake-photograph picture{aspect-ratio:1.65}.snake-photograph figcaption{min-height:98px;padding-top:18px}.snake-discovery{margin-top:28px}.snake-archive-note{margin-top:23px}.snake-portfolio-link{margin-top:18px}.snake-below-board{min-height:53px}.snake-below-board>p{font-size:9px}.snake-overlay h2{font-size:clamp(28px,2.7vw,42px)}.snake-overlay .snake-eyebrow{font-size:8px}.snake-overlay-card>p:not(.snake-eyebrow){font-size:11px}.snake-frame-mark{margin-bottom:17px}.snake-button{margin:20px 0 11px}}
@media(min-width:721px) and (max-height:700px){.snake-masthead h1{font-size:58px}.snake-masthead{padding:0 0 12px}.snake-toolbar{margin-bottom:5px}.snake-layout{padding-top:10px;grid-template-columns:minmax(260px,min(45vw,calc(100svh - 335px))) minmax(0,1fr)}.snake-frame-mark{display:none}.snake-overlay h2{font-size:26px}.snake-overlay-card>p:not(.snake-eyebrow){font-size:10px}.snake-button{margin:14px 0 8px;min-height:44px}.snake-overlay-card .snake-overlay-note{font-size:8px}}

.snake-scoreboard{scroll-margin-top:16px}.snake-rules>p .snake-text-button{display:block;font-size:10px;margin-top:8px}.snake-rules h2:focus-visible{outline:2px solid var(--snake-accent);outline-offset:5px}
/* Mobile play: larger thumb targets and clear feedback for queued turns. */
.snake-touch-note{display:none}.snake-below-board>p>span{margin:0}
.snake-direction{color:var(--ink);transition:background .08s,color .08s,transform .08s}
.snake-direction[data-active=true]{background:var(--snake-accent);border-color:var(--snake-accent);color:#fff}
.snake-direction:active{transform:scale(.96)}.snake-arrow{stroke:currentColor}
.snake-dpad{user-select:none;-webkit-user-select:none;touch-action:none}
@media(max-width:720px){.snake-mobile-controls{gap:12px}.snake-dpad{grid-template-columns:repeat(3,56px);grid-template-rows:repeat(2,54px);gap:6px}.snake-direction{min-width:54px;min-height:54px}.snake-mobile-controls>p{max-width:120px}.snake-mobile-controls>p span{max-width:112px}.snake-keyboard-note{display:none}.snake-touch-note{display:block}.snake-scoreboard .snake-indicator{font-size:9px}}
@media(max-width:370px){.snake-mobile-controls>p{max-width:86px}.snake-mobile-controls>p span{font-size:9px}.snake-dpad{grid-template-columns:repeat(3,54px)}}
@media(pointer:coarse) and (min-width:721px){.snake-direction{width:56px;height:54px}.snake-keyboard-note{display:none}.snake-touch-note{display:block}}
/* A sideways phone gets its controls beside the board, within the same view. */
@media(orientation:landscape) and (max-height:500px) and (max-width:1000px){
 body.snake-focused .site-header{display:none}
 .snake-page[data-play-layout=active]{padding-top:0}
 .snake-page[data-play-layout=active] .snake-masthead{display:none}
 .snake-page[data-play-layout=active] .snake-layout{display:block;padding-top:0}
 .snake-page[data-play-layout=active] .snake-console{--mobile-board-size:min(calc(100svh - 40px),46vw);display:grid;grid-template-columns:var(--mobile-board-size) minmax(160px,1fr);grid-template-rows:44px 54px 48px minmax(114px,1fr);grid-template-areas:'board toolbar' 'board score' 'board tools' 'board controls';gap:6px 24px;height:max(278px,var(--mobile-board-size));max-width:900px;width:100%;margin:8px auto 0}
 .snake-page[data-play-layout=active] .snake-stage{grid-area:board;align-self:start;width:100%}
 .snake-page[data-play-layout=active] .snake-toolbar{grid-area:toolbar;margin:0}
 .snake-page[data-play-layout=active] .snake-scoreboard{grid-area:score;align-self:center;padding:0;gap:24px}
 .snake-page[data-play-layout=active] .snake-scoreboard strong{font-size:25px}
 .snake-page[data-play-layout=active] .snake-below-board{grid-area:tools;min-height:44px}
 .snake-page[data-play-layout=active] .snake-mobile-controls{grid-area:controls;display:flex;align-items:center;justify-content:center;padding:0}
 .snake-page[data-play-layout=active] .snake-mobile-controls>p{display:none}
 .snake-page[data-play-layout=active] .snake-dpad{display:grid;grid-template-columns:repeat(3,56px);grid-template-rows:repeat(2,54px);gap:6px}
 .snake-page[data-play-layout=active] .snake-direction{width:56px;height:54px}
 .snake-page[data-play-layout=active] .snake-arrow{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
 .snake-page[data-play-layout=active] .snake-direction-up{grid-column:2;grid-row:1}.snake-page[data-play-layout=active] .snake-direction-left{grid-column:1;grid-row:2}.snake-page[data-play-layout=active] .snake-direction-down{grid-column:2;grid-row:2}.snake-page[data-play-layout=active] .snake-direction-right{grid-column:3;grid-row:2}
 .snake-page[data-play-layout=active] .snake-arrow-left{transform:rotate(-90deg)}.snake-page[data-play-layout=active] .snake-arrow-down{transform:rotate(180deg)}.snake-page[data-play-layout=active] .snake-arrow-right{transform:rotate(90deg)}
 .snake-page[data-play-layout=active] .snake-keyboard-note{display:none}.snake-page[data-play-layout=active] .snake-touch-note{display:block;font-size:10px}
 .snake-page[data-play-layout=active] .snake-frame-mark{display:none}.snake-page[data-play-layout=active] .snake-overlay{padding:14px}.snake-page[data-play-layout=active] .snake-overlay h2{font-size:26px}.snake-page[data-play-layout=active] .snake-overlay-card>p:not(.snake-eyebrow){font-size:10px}.snake-page[data-play-layout=active] .snake-button{min-height:44px;margin:14px 0 8px}.snake-page[data-play-layout=active] .snake-overlay-card .snake-overlay-note{font-size:8px}
 .snake-page[data-play-layout=active] .snake-archive{margin:35px auto 0}.snake-page[data-play-layout=active] .snake-storage-note{grid-column:1/-1}
}
@media(prefers-reduced-motion:reduce){.snake-direction{transition:none}}
@media(orientation:landscape) and (max-height:500px) and (max-width:1000px){.snake-page[data-play-layout=active] .snake-direction{display:grid;place-items:center;border:1px solid #ccd2c7;background:#eef0e9;border-radius:4px;padding:10px;min-width:54px;min-height:54px}.snake-page[data-play-layout=active] .snake-direction[data-active=true]{background:var(--snake-accent);border-color:var(--snake-accent);color:white}}
