/* Memory game base (kit-spec-1): layout and components on the house tokens only. */
.wrap{max-width:1040px}
.top{padding-block:var(--s-6) var(--s-4);border-bottom:1px solid var(--line)}
.top h1{margin-top:var(--s-2)}
.lede{color:var(--ink-2);margin:var(--s-2) 0 0}
.game{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-5);align-items:start;padding-block:var(--s-5) var(--s-8)}
@media (min-width:1000px){
.game{grid-template-columns:minmax(0,auto) minmax(260px,1fr);grid-template-areas:"board head" "board ctl" "board win";grid-template-rows:auto auto 1fr;column-gap:var(--s-7)}
.head{grid-area:head}.ctl{grid-area:ctl}.win{grid-area:win}.board{grid-area:board}}
.head,.ctl{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-3);min-width:0}
.status{margin:0;min-height:2.6em;font:700 var(--t-lg)/1.3 var(--serif)}
.hud{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-3);margin:0}
.hud div{border-top:1px solid var(--line);padding-top:var(--s-2)}
.hud dt,.label{font:650 var(--t-xs)/1.2 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.hud dd{margin:var(--s-1) 0 0;font:700 var(--t-2xl)/1.1 var(--serif)}
.row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--s-3) var(--s-4)}
.label{margin:0 0 var(--s-2)}
.seg{display:inline-flex;flex-wrap:wrap;max-width:100%;border:1px solid var(--edge);border-radius:var(--r);overflow:hidden}
.seg button{min-height:44px;padding:0 var(--s-3);border:0;background:none;color:var(--ink);font:600 var(--t-sm)/1 var(--sans);white-space:nowrap;cursor:pointer}
.seg button+button{border-left:1px solid var(--edge)}
.seg button:hover{background:var(--sunk)}
.seg [aria-pressed=true],.seg [aria-pressed=true]:hover{background:var(--ink);color:var(--bg)}
.note,.win p{margin:0;font-size:var(--t-sm);color:var(--ink-2)}
.win{display:grid;gap:var(--s-2);padding-block:var(--s-4);border-block:1px solid var(--line)}
.win h2{font-size:var(--t-xl)}
.board{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:var(--s-2);width:calc(var(--cols)*var(--cell));max-width:100%}
.tile,.in{display:grid;grid-template:minmax(0,1fr)/minmax(0,1fr)}
.tile{aspect-ratio:1;min-height:44px;padding:0;border:0;border-radius:var(--r);background:none;color:var(--ink);cursor:pointer;perspective:800px}
.tile[aria-disabled=true]{cursor:default}
.in{width:100%;height:100%;transform-style:preserve-3d;transition:transform var(--dur-flip) var(--ease-flip)}
.up .in{transform:rotateY(180deg)}
.face{position:relative;grid-area:1/1;display:grid;place-items:center;min-width:0;border:1px solid var(--edge);border-radius:var(--r);background:var(--sunk);-webkit-backface-visibility:hidden;backface-visibility:hidden}
.back{background:var(--wash);border-color:var(--accent-line)}
.back::after{content:"";width:26%;aspect-ratio:1;border-radius:22%;background:var(--accent);opacity:.55;transform:rotate(45deg)}
.tile:hover:not([aria-disabled=true]) .back{border-color:var(--accent);box-shadow:var(--shadow-card)}
.front{transform:rotateY(180deg);border:2px solid var(--ink);background:var(--surface)}
.done .front{border:1px solid var(--accent-line);background:var(--wash)}
.done .front::after{content:"";position:absolute;top:8px;right:7px;width:10px;height:5px;border:solid var(--accent);border-width:0 0 2px 2px;transform:rotate(-45deg)}
.face svg{width:68%;height:68%}

.tile{container-type:inline-size}
.front{font-size:2.2rem;font-size:clamp(18px,44cqi,112px);line-height:1}
.word{padding:var(--s-1);font:700 var(--t-md)/1.2 var(--serif);text-align:center;overflow-wrap:anywhere}
@media (max-width:480px){.board{gap:6px}.word{font-size:var(--t-sm)}}
/* tap-targets (phones only; desktop untouched): controls >= 44 px, inputs 16 px so iOS does not zoom */@media (max-width:600px){a[href]:not(p a,li p a,blockquote a,figcaption a,td a,dd a,label a),button,[role=button],[onclick],summary,select,input:not([type=hidden],[type=checkbox],[type=radio],[type=range]){min-height:44px!important;min-width:44px!important}input[type=range]{min-height:44px}:where(a[href]:not(p a,li p a,blockquote a,figcaption a,td a,dd a,label a)){display:inline-flex;align-items:center;justify-content:center}input,select,textarea{font-size:max(16px,1em)!important}}
