/* Responsive polish: preserve the roomy game, budget short viewports explicitly. */
@media(max-height:820px){
 .daily-shell{--game-top:max(16px,env(safe-area-inset-top))}
 .daily-shell.is-playing .playview{padding-bottom:max(16px,env(safe-area-inset-bottom))}
 .daily-shell .playview .session-top{margin-bottom:8px}
 .daily-shell .board-tools,.daily-shell[data-puzzle-buttons="refined"] .board-tools{min-height:60px;padding:6px 0 4px}
}
/* One column: the retired refresh action no longer consumes primary-button width. */
.home .welcome-start-row{display:flex;justify-content:center;width:100%;gap:0}
.home .welcome-actions .welcome-start-row #start{width:min(100%,300px);min-height:66px;padding:12px 18px;gap:12px;font-size:clamp(24px,6vw,30px);white-space:nowrap}
.home .welcome-start-row .home-refresh:not([hidden]){margin-left:10px}
.home .daily-logo .eyebrow{margin-bottom:10px}
.home .daily-logo{margin-top:clamp(18px,3svh,30px)}
.home .daily-subtitle{margin-top:clamp(24px,4svh,34px);gap:9px;padding:13px 9px;border-radius:12px;background:#f1e5cc55}
.home .daily-subtitle .daily-rules{flex-wrap:wrap;column-gap:7px;row-gap:3px}
.home .welcome-play-cluster{margin-top:clamp(26px,4.5svh,42px)}
.home:has(.upcoming-triptych) .welcome-actions{margin-top:-12px;gap:clamp(20px,3svh,28px)}
.home .upcoming-card{height:clamp(140px,23svh,184px)}
@media(max-height:650px){
 .home .daily-logo{margin-top:14px}
 .home .daily-subtitle{margin-top:20px;padding:10px 8px}
 .home .welcome-play-cluster{margin-top:22px}
 .home .upcoming-card{height:124px}
 .home:has(.upcoming-triptych) .welcome-actions{gap:16px}
}
/* Secondary help stays discoverable on touch; hover and focus add a soft face. */
:is(#tirds-splash,.home) .guidebutton{min-height:44px;background:transparent;border-color:transparent;box-shadow:none;transform:none}
:is(#tirds-splash,.home) .guidebutton:focus-visible{background:#fff8e9;border-color:#cdbb96;box-shadow:0 2px #d8c7a3}
@media(hover:hover){:is(#tirds-splash,.home) .guidebutton:hover{background:#fff8e9;border-color:#cdbb96;box-shadow:0 2px #d8c7a3;transform:none}}
#tirds-splash .mode-infinite{background:linear-gradient(145deg,#fffdf3,#eddbb4)}
#tirds-splash .mode-infinite:hover{background:linear-gradient(145deg,#fffef7,#f3e3c3)}
#tirds-splash .t2-main{gap:clamp(24px,3svh,32px)}
@media(max-width:600px){
 #tirds-splash .t2-fidget{--size:clamp(72px,22vw,94px)}
 #tirds-splash .t2-main{gap:25px}
}
@media(max-height:620px){#tirds-splash .t2-main{gap:18px}}
@media(max-height:460px){#tirds-splash .t2-main{gap:8px}}
/* Results form a wider composition. Share belongs to the player's column. */
.daily-finish-left .finish-actions{margin:28px auto 0;padding:0;max-width:360px;display:block}
.daily-finish-left .finish-actions #share{width:100%;margin:0}
.daily-finish-left .share-feedback:empty{display:none}
.daily-finish-left{padding-top:0}
.daily-shell:has(.results.has-leaderboard:not([hidden])) .ghost-cluster{left:calc(50% - 820px);top:130px}
.daily-shell:has(.results.has-leaderboard:not([hidden])) .ghost-cluster.right{left:auto;right:calc(50% - 820px);top:300px}
@media(max-width:1650px){.daily-shell:has(.results.has-leaderboard:not([hidden])) .ghost-tiles{display:none}}
@media(min-width:1001px) and (max-width:1200px){
 .results.has-leaderboard{padding-inline:40px}
 .daily-finish-grid{gap:32px}
 .daily-finish-left .score-triptych{margin-inline:4px}
}
@media(max-width:1000px){
 .daily-finish-left .finish-actions{max-width:none;margin-top:26px}
 .daily-finish-right{margin-top:24px}
}
@media(max-width:540px){
 .results.has-leaderboard{padding-inline:14px}
 .rival-panel{padding:19px 10px 12px;border-radius:20px}
 .rival-result{padding:9px 7px}
 .rival-columns,.rival-result{grid-template-columns:16px minmax(0,1fr) 58px 29px;gap:4px}
 .rival-person{gap:6px}
 .rival-name{font-size:16px}
 .rival-heading h2{font-size:25px}
 .rival-time{font-size:18px}
 .rival-hints svg{width:17px}
}

/* Shared tutorial affordance and Home navigation. */
:is(#tirds-splash,.daily-shell) .guidebutton{box-sizing:border-box;min-width:177px;min-height:44px;padding:8px 19px;gap:8px;border:1px solid transparent;border-radius:13px;font:500 16px var(--display);color:#67502d;background:transparent;box-shadow:none;transform:none;text-decoration:none}
:is(#tirds-splash,.daily-shell) .guidebutton svg{width:17px;height:17px;flex:none}
:is(#tirds-splash,.daily-shell) .guidebutton:is(:focus-visible,:active){background:#fff8e9;border-color:#cdbb96;box-shadow:0 2px #d8c7a3;transform:none}
@media(hover:hover){:is(#tirds-splash,.daily-shell) .guidebutton:hover{background:#fff8e9;border-color:#cdbb96;box-shadow:0 2px #d8c7a3;transform:none}}
.daily-shell .finish-home{font-size:15px;gap:9px;min-height:44px}
.daily-shell .edition-home.finish-home{display:inline-flex;align-items:center;justify-content:flex-start;justify-self:start;width:max-content;text-decoration:none}
.daily-shell .edition-home .game-back svg{width:18px;height:18px}
@media(max-width:390px){.home .edition-row #edition{letter-spacing:.5px}}
@media(max-width:370px){.home .edition-row{grid-template-columns:1fr;gap:8px}.home .edition-row #edition{grid-row:2}}

/* Profile dialogs separate content from actions, including on short screens. */
.dialog[data-kind="profile"]{max-height:calc(100dvh - 32px);overflow:auto}
.dialog[data-kind="profile"] #dialog-title:focus{outline:none}
.dialog[data-kind="profile"] #dialog-content{margin-bottom:24px}
.dialog[data-kind="profile"] .rival-profile p{margin:0;line-height:1.5}
.dialog[data-kind="profile"] #dialog-buttons .primary{width:100%}
.daily-shell .board-tools #finish-run{width:auto;min-width:44px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding-inline:10px;font:600 13px var(--body)}
.daily-shell .board-tools #finish-run svg{width:20px;height:20px}
.infinite-shell .is-done .board-tools{display:none}
.solved-navigation{display:flex;align-items:stretch;gap:10px;margin-top:18px}
.rounddone .solved-navigation .primary{flex:1;min-width:0;margin:0;white-space:nowrap;font-size:clamp(19px,5vw,26px);gap:8px}
.solved-previous{display:inline-flex;align-items:center;justify-content:center;gap:4px;border:1px solid #c9b38d;border-radius:13px;padding:8px;background:#fff7e6;box-shadow:0 3px #c9b38d;font:600 13px var(--body)}
.solved-previous svg{width:18px;height:18px}
.rounddone #undo-solved{display:block;margin:12px auto 0;font-size:12px}
.daily-shell .board-tools:has(#finish-run:not([hidden])){grid-template-columns:minmax(0,1fr) auto;gap:12px}
.daily-shell .board-tools:has(#finish-run:not([hidden]))>.toolpair{grid-column:1}
.daily-shell .board-tools>#finish-run{grid-column:2;white-space:nowrap}
/* One Daily card family. Preview silhouettes and solved reviews share geometry. */
.home .upcoming-triptych,.results .score-triptych{width:100%;max-width:420px;gap:10px;padding:0 4px;margin-inline:auto}
.home .upcoming-item:nth-child(2){translate:0 -4px}
.results .score-item:nth-child(2){translate:0 -4px}
.daily-shell .home .tird-card,.daily-shell .results .tird-card{position:relative;display:grid;grid-template-rows:43px minmax(0,1fr) 29px;align-items:center;gap:8px;width:100%;height:204px;min-height:204px;margin:0;padding:13px 7px 11px;border:1px solid #cbb997;border-radius:17px;background:linear-gradient(145deg,#fff9eb,#ebdcc0);box-shadow:inset 0 1px #fffef7,0 4px #cbb894,0 9px 13px -10px #79603b80;rotate:none;transform:rotate(var(--turn));transform-origin:50% 85%;animation:none;transition:transform .22s ease;scale:1;translate:none;color:#51412b}
.daily-shell .home .tird-card.solved,.daily-shell .results .tird-card.solved{background:linear-gradient(145deg,#b7e899,#7fbe62);border-color:#82a964;box-shadow:inset 0 1px #e9ffda,0 4px #66964c,0 9px 13px -10px #486a3680}
.daily-shell .results .tird-card:not(.solved){background:linear-gradient(145deg,#e9e1d0,#d5c7ad);border-color:#b5a387;box-shadow:inset 0 1px #fff6e7,0 4px #ad9c7e}
.daily-shell .tird-card :is(h2,.round-label){display:grid;place-items:center;align-self:center;width:100%;min-height:0;margin:0;font:500 16px/1.12 var(--display);color:#473c29;text-wrap:balance;transform:none;translate:0 -3px;opacity:1}
.daily-shell .tird-card :is(.upcoming-shape,.big-mark){position:static;display:grid;place-items:center;align-self:stretch;justify-self:stretch;width:100%;height:100%;min-height:0;margin:0;translate:0 -4px}
.daily-shell :is(.home,.results) .tird-card .puzzle-mark{position:static;inset:auto;width:calc(var(--mark-cols) * 18px - 2px);height:calc(var(--mark-rows) * 18px - 2px);max-width:none;max-height:none;overflow:visible;transform:none;animation:none}
.daily-shell .tird-card .puzzle-mark g{animation:none}
.daily-shell .tird-card .puzzle-mark rect{fill:#fffcec;stroke:#70935070;stroke-width:.6;animation:none}
.daily-shell .tird-card .puzzle-mark text{font:600 11.52px var(--display);fill:#35502c}
.daily-shell .tird-card:not(.solved) .puzzle-mark text{fill:#7b684a}
.daily-shell .tird-card .silhouette rect{fill:#c4b18d88;stroke:none}
.daily-shell .tird-card .score-card-footer{height:29px;min-height:0;gap:2px;justify-content:center;align-self:center}
.daily-shell .tird-card .round-time{margin:0;padding:2px 6px;border:1px solid #fffef4a0;border-radius:20px;background:#fbffeaa8;font:500 10px/1.1 var(--body);color:#5b704a;gap:3px}
.daily-shell .tird-card .round-time svg{display:block;width:10px;height:10px}
.daily-shell .tird-card .small-status{font-size:9px;line-height:1.1;margin:0}
.daily-shell .tird-card .card-review-overlay{position:absolute;inset:0;display:grid;place-items:center;border-radius:inherit;background:#fbf7e524;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease}
.daily-shell .tird-card .card-review-overlay>span{min-width:72px;padding:8px 14px;border:1px solid #c8b895;border-radius:17px;background:#fff9eb;box-shadow:0 2px 5px #46672e20;color:#52633f;font:500 14px/1.1 var(--display)}
.daily-shell .results .tird-card:focus-visible{transform:translateY(-3px) rotate(0);outline:2px solid #806639;outline-offset:4px}
.daily-shell .results .tird-card:focus-visible>.card-review-overlay{opacity:1;visibility:visible}
.daily-shell .results .tird-card:focus-visible>:is(.round-label,.big-mark,.score-card-footer){filter:blur(2px);opacity:.65}
@media(hover:hover){
 .daily-shell .results .tird-card:hover{transform:translateY(-3px) rotate(0);rotate:none;translate:none}
 .daily-shell .results .tird-card:hover>.card-review-overlay{opacity:1;visibility:visible}
 .daily-shell .results .tird-card:hover>:is(.round-label,.big-mark,.score-card-footer){filter:blur(2px);opacity:.65}
 .daily-shell .home .tird-card:hover{transform:rotate(var(--turn));translate:none;scale:1}
}
@media(max-width:360px){.daily-shell :is(.home,.results) .tird-card .puzzle-mark{width:calc(var(--mark-cols) * 16px - 1.78px);height:calc(var(--mark-rows) * 16px - 1.78px)}.daily-shell .tird-card :is(h2,.round-label){font-size:14px}}
@media(prefers-reduced-motion:reduce){.daily-shell .tird-card,.daily-shell .tird-card .card-review-overlay{transition:none}}
.daily-shell :is(.home,.results) .tird-card .puzzle-mark{translate:none;aspect-ratio:auto}
@media(max-width:360px){
 .daily-shell .home .tird-card,.daily-shell .results .tird-card{padding-inline:5px}
 .daily-shell :is(.home,.results) .tird-card .puzzle-mark{width:calc(var(--mark-cols) * 14px - 1.56px);height:calc(var(--mark-rows) * 14px - 1.56px)}
}

/* Keep each hint badge attached to the tilted card, including its Review lift. */
.daily-shell .results .tird-card{overflow:visible}
.daily-shell .results .tird-card>.hint-penalty{top:0;right:8px;translate:0 -50%;rotate:none;transform:none;filter:none;opacity:1}

/* The closing section follows results on wide screens and the leaderboard when stacked. */
#home-next{margin-top:24px}
#home-next .daily-next{margin:0;padding:0;border:0}
.daily-finish-closing{min-width:0}
@media(min-width:1001px){
 .daily-finish-grid{row-gap:0}
 .daily-finish-left{grid-column:1;grid-row:1}
 .daily-finish-right{grid-column:2;grid-row:1 / span 2}
 .daily-finish-closing{grid-column:1;grid-row:2;align-self:start}
}

/* Shared, quiet invitation to Infinite on splash and Daily results. */
:is(#tirds-splash,.daily-shell) .infinite-invitation{text-align:center;flex-shrink:0;pointer-events:auto}
.daily-shell .infinite-invitation{margin:18px auto 0}
:is(#tirds-splash,.daily-shell) .infinite-invitation p{margin:0 0 10px;font:500 14px/1.4 var(--display);color:#8b785a}
:is(#tirds-splash,.daily-shell) .infinite-invitation .mode-infinite{display:inline-flex;align-items:center;justify-content:center;gap:10px;box-sizing:border-box;width:208px;max-width:100%;min-height:44px;padding:7px 12px;border:1px solid #d4c4a6;border-radius:999px;background:linear-gradient(145deg,#fffaf0,#f4e8d1);color:#7b694c;box-shadow:inset 0 1px #fffdf6,0 2px #dfcfb1;font:500 16px/1.2 var(--display);text-decoration:none;transition:background .18s,box-shadow .18s;transform:none}
:is(#tirds-splash,.daily-shell) .infinite-invitation .mode-infinite span{font-size:22px;line-height:1;color:#948163}
:is(#tirds-splash,.daily-shell) .infinite-invitation .mode-infinite:hover{background:linear-gradient(145deg,#fffdf6,#f6ecd9);box-shadow:inset 0 1px #fff,0 2px #d6c3a1;transform:none}
:is(#tirds-splash,.daily-shell) .infinite-invitation .mode-infinite:active{translate:0 1px;box-shadow:0 1px #dfcfb1}
@media(prefers-reduced-motion:reduce){.infinite-invitation .mode-infinite{transition:none!important}}

/* Unplayed Daily: quiet curiosity on the cards; invitation on Start. */
.home.is-unplayed:has(.upcoming-triptych) .welcome-actions{margin-top:-30px}
.home.is-unplayed .upcoming-card{cursor:default}
.daily-shell .home.is-unplayed .tird-card{transition:transform .32s cubic-bezier(.2,.7,.25,1)}
.home.is-unplayed .upcoming-card::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(110deg,transparent 25%,#fffdf055 39%,#ffffffa6 49%,#fffdf055 59%,transparent 73%);background-size:300% 100%;background-position:100% 0;opacity:0}
.home.is-unplayed #start{transition:transform .32s cubic-bezier(.2,.7,.25,1),filter .25s ease;transform-origin:50% 70%}
@media(hover:hover) and (pointer:fine){
 .daily-shell .home.is-unplayed .tird-card:hover{transform:translateY(-2px) rotate(calc(var(--turn) * .65))}
 .home.is-unplayed .upcoming-card:hover::after{opacity:1;animation:daily-card-glimmer 1.15s ease-out both}
 .home.is-unplayed .welcome-play-cluster:hover #start{transform:translateY(-2px) scale(1.015)}
 .home.is-unplayed .welcome-play-cluster #start:hover{transform:translateY(-3px) scale(1.025)}
 .home.is-unplayed .welcome-play-cluster #start:active{transform:translateY(1px) scale(1)}
}
@keyframes daily-card-glimmer{from{background-position:100% 0;opacity:0}20%{opacity:1}to{background-position:0% 0;opacity:0}}
@media(prefers-reduced-motion:reduce){
 .daily-shell .home.is-unplayed .tird-card{transition:none}
 .daily-shell .home.is-unplayed .tird-card:hover{transform:rotate(var(--turn))}
 .home.is-unplayed #start{transition:none}
 .home.is-unplayed .welcome-play-cluster:hover #start,.home.is-unplayed .welcome-play-cluster #start:hover{transform:none}
 .home.is-unplayed .upcoming-card:hover::after{animation:none;opacity:.35;background-position:50% 0}
}

/* First tutorial placement: introduce the clue alongside the tile prompt. */
.tutorial-focus .cluegroup.introducing-clue{position:relative;z-index:83}
#tutorial-clue-note{position:absolute;top:calc(100% + 15px);left:8px;width:210px;max-width:calc(100vw - 70px);padding:12px 15px;border:1px solid #d4b473;border-radius:13px;background:#fff4dc;color:#493b29;box-shadow:0 6px 18px #35240d25;pointer-events:none;text-align:left}
#tutorial-clue-note svg{position:absolute;left:18px;bottom:calc(100% - 2px);width:20px;height:25px;fill:none;stroke:#fff4dc;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
#tutorial-clue-note strong{display:block;font:500 17px/1.2 var(--display);margin-bottom:4px}
#tutorial-clue-note span{display:block;font:500 13px/1.4 var(--body)}

/* Daily edge navigation reserves equal space on both sides of the tools. */
.daily-shell:not(.infinite-shell) .board-tools:has(#daily-next){grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:6px;padding-inline:0}
.daily-shell:not(.infinite-shell) .board-tools:has(#daily-next)>.toolpair{grid-column:2;grid-row:1}
.daily-shell:not(.infinite-shell) .board-tools:has(#daily-next)>#finish-run{grid-column:3;grid-row:1;width:44px;padding:10px}
