:root{--forest:#183e32;--ink:#244235;--cream:#f6f3e9;--gold:#e4bd72;--muted:#6f7d6c;--line:#d9dfce}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:Arial,sans-serif}button,select,a{-webkit-tap-highlight-color:transparent}button,select{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:#fffdf7;border-radius:30px;padding:12px 20px;color:var(--ink);font-weight:600;transition:background .2s,transform .2s}button:hover{background:#e7eddb;transform:translateY(-1px)}button:focus-visible,a:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid #c48724;outline-offset:4px}button:disabled{opacity:.5;cursor:default}header{max-width:1400px;margin:auto;padding:25px 5%;display:flex;align-items:center;justify-content:space-between}#brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--forest);font-family:Georgia,serif;font-size:26px}#brand small{display:block;font:9px Arial;letter-spacing:2.2px;margin-top:6px}.brandmark{font-size:39px;color:#ac803d}main{max-width:1400px;margin:auto;padding:0 5%}.hero{margin-top:12px;display:grid;grid-template-columns:46% 54%;min-height:420px;align-items:center;background:#e8eddd;border-radius:24px;overflow:hidden}.hero-copy{padding:45px 36px}.eyebrow{font-size:10px;font-weight:bold;letter-spacing:2.2px;color:#7a865d;margin:0 0 18px}h1,h2{font-family:Georgia,serif;font-weight:400}h1{font-size:clamp(36px,4vw,56px);line-height:1.08;margin:0 0 23px;letter-spacing:-1.6px}.hero-copy>p:not(.eyebrow){font-size:15px;line-height:1.8;color:#60715c}.primary{background:var(--forest);color:#fff5db;border-color:var(--forest);padding:16px 26px}.primary:hover{background:#2b5440}.primary span{margin-left:20px}.quiet{display:block;font-size:11px;margin-top:17px;color:var(--muted)}.hero-art{height:100%;min-height:420px;position:relative}.hero-art img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:center}.hero-art:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#e8eddd 0%,transparent 15%,transparent 75%,#17382f44)}.art-label{position:absolute;bottom:22px;right:22px;z-index:1;color:white;font:italic 15px Georgia;text-shadow:0 2px 7px #000}.choose{padding-top:42px}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:23px}.section-head .eyebrow{margin-bottom:9px}h2{font-size:29px;margin:0}.section-head>span{font-size:12px;color:var(--muted)}#cards{display:grid;grid-template-columns:repeat(5,1fr);gap:17px}.card{text-align:left;padding:0;background:#fffdf7;border-radius:15px;overflow:hidden;box-shadow:0 5px 16px #17382f06}.card:hover{transform:translateY(-5px);background:#fff}.card-image{height:190px;overflow:hidden}.card img{height:100%;width:100%;object-fit:cover;object-position:center}.card[data-id=alvar] img{object-position:35%}.card[data-id=svampe] img{object-position:center 40%}.card-info{padding:16px}.card-info h3{font:24px Georgia;margin:0 0 6px}.card-info p{font-size:11px;font-weight:400;color:var(--muted);margin:0 0 18px}.card-bottom{font-size:11px;display:flex;justify-content:space-between;color:#688051}.card-bottom b{font-size:19px}footer{padding:34px 0;font-size:10px;color:#81907b;display:flex;justify-content:center;gap:20px}footer span{color:#ba975e}[hidden]{display:none!important}.game-top{display:flex;align-items:center;justify-content:space-between;margin:20px 0 25px}.game-top h1{font-size:32px;margin:0}.game-top .eyebrow{margin-bottom:7px}.game-top>div{text-align:center}.game-top label{font-size:12px}select{display:block;padding:10px 20px;border:1px solid var(--line);border-radius:20px;background:white;color:var(--ink);margin-top:6px}.toolbar{display:flex;align-items:center;gap:10px}.progress-wrap{flex:1;font-size:13px;display:flex;align-items:center;gap:16px}progress{accent-color:#74945d;width:150px;height:8px}#instruction{font-size:13px;color:var(--muted);margin:20px 0}.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:30px;align-items:start}.board-wrap{min-height:460px;background:#e5e8dc;border:1px solid #cbd2c0;border-radius:18px;display:flex;align-items:center;justify-content:center;padding:22px;box-shadow:inset 0 2px 15px #17382f08}#board{display:block;max-height:600px;max-width:100%;width:100%;background:#ced8c3;box-shadow:0 5px 20px #17382f20;overflow:visible;touch-action:none}#board.portrait{width:auto;height:min(62vh,600px)}#board .target{cursor:pointer}#board .outline{fill:none;stroke:#6c845a;stroke-width:1;opacity:.3;pointer-events:none}.tray-head{display:flex;align-items:center;justify-content:space-between;margin:0 0 13px}.tray-head h2{font-size:21px}.tray-head span{font-size:11px;color:var(--muted)}#tray{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;max-height:580px;overflow-y:auto;padding:6px}.piece{border-radius:9px;padding:3px;background:#edf0e3;border:2px solid transparent;touch-action:none;min-width:0;aspect-ratio:1}.piece svg{width:100%;height:100%;display:block;pointer-events:none;filter:drop-shadow(0 2px 2px #0005)}.piece.selected{border-color:#b98732;background:#f1ddb0}.piece.placed{visibility:hidden}.tray-note,#saveNote{font-size:11px;color:var(--muted);text-align:center;margin:15px 0 25px}.ghost{position:fixed;pointer-events:none;z-index:50;filter:drop-shadow(0 8px 6px #0005)}dialog{border:0;border-radius:24px;padding:0;background:var(--cream);color:var(--ink);max-width:850px;width:90%;box-shadow:0 25px 90px #0005}dialog::backdrop{background:#0b231cbb;backdrop-filter:blur(5px)}#win[open]{display:grid;grid-template-columns:45% 55%}.win-picture img{width:100%;height:100%;object-fit:cover;animation:float 4s ease-in-out infinite}.win-picture{overflow:hidden;min-height:400px}.win-copy{padding:35px}.win-copy h2{font-size:34px}.win-copy>p{font-size:14px;line-height:1.6}blockquote{margin:20px 0;color:#697b59;font:italic 17px/1.5 Georgia}.win-copy button{margin:5px 0}#next{display:block;width:100%;margin-top:20px}#audioStatus{font-size:11px;color:var(--muted)}#closeWin{background:transparent;border:0;width:100%;font-size:12px}#resetDialog{padding:35px;max-width:450px}.dialog-actions{display:flex;gap:12px;margin-top:22px}.spark{animation:spark 1s ease} @keyframes spark{50%{filter:brightness(1.4)}}@keyframes float{50%{transform:scale(1.025)}}@media(max-width:1000px){.play-layout{grid-template-columns:minmax(0,1fr) 260px}.hero-copy{padding:30px 25px}.card-image{height:155px}.toolbar button{font-size:12px;padding:10px}.progress-wrap{display:block}.progress-wrap progress{display:block;margin-top:6px}}@media(max-width:700px){header{padding:20px}main{padding:0 20px}#brand{font-size:22px}.hero{grid-template-columns:1fr}.hero-copy{padding:30px}.hero-art{min-height:240px}.hero-art:after{background:linear-gradient(#e8eddd,transparent 20%)}#cards{grid-template-columns:repeat(2,1fr)}.card-image{height:180px}.section-head{align-items:start}.section-head>span{display:none}.game-top{flex-wrap:wrap;gap:15px}.game-top>div{order:-1;width:100%;text-align:left}.toolbar{flex-wrap:wrap}.progress-wrap{flex-basis:100%;display:flex}.play-layout{grid-template-columns:1fr;gap:20px}.board-wrap{min-height:0;padding:15px}#board.portrait{height:430px}#tray{max-height:310px;grid-template-columns:repeat(4,1fr)}#win[open]{display:block}.win-picture{height:180px;min-height:0}.win-picture img{object-position:center 35%}.win-copy{padding:25px}footer{line-height:1.6;display:block;text-align:center}footer span{margin:0 10px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
