:root{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#254d3e;background:#f9f8f2;font-synthesis:none;--green:#254d3e;--muted:#6c796b;--line:#dfe5d7}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #c37543;outline-offset:4px}a{color:inherit;text-decoration:none}.topbar{max-width:1100px;margin:auto;height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;border-bottom:1px solid var(--line)}.topbar a{display:flex;align-items:center;gap:12px;font-size:12px;letter-spacing:2px;font-weight:800}.brand-icon{font-size:34px;line-height:1;color:#a26b47}.icon-button{border:1px solid #cfd9c9;border-radius:50%;background:transparent;width:40px;height:40px;font-weight:600}.hero{text-align:center;padding:60px 20px 42px;background:radial-gradient(ellipse at 50% 80%,#e6ebdb88,transparent 65%)}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:750;color:#74836b}h1,h2,p{margin-top:0}h1,h2{font-family:Georgia,'Times New Roman',serif;font-weight:normal}h1{font-size:clamp(36px,5vw,59px);line-height:1.1;letter-spacing:-1.8px;margin:17px 0 20px}h1 em{font-weight:normal;color:#6f8860}p{line-height:1.7;color:var(--muted);font-size:14px}.hero-icons{display:flex;justify-content:center;align-items:center;gap:20px;margin:24px auto 18px}.hero-icons img{width:70px;height:76px;object-fit:contain;filter:drop-shadow(0 8px 7px #254d3e17);transform:rotate(-8deg)}.hero-icons img:nth-child(even){transform:rotate(8deg)}.hero-icons img:last-child{width:54px}.birthday{display:inline-block;font-size:12px;background:#eeeade;border:1px solid #e2ddcc;padding:9px 18px;border-radius:30px;color:#88734d}.journey{max-width:1040px;margin:auto;padding:34px 24px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}h2{font-size:30px;letter-spacing:-.8px;margin:9px 0 12px}.progress-pill{white-space:nowrap;font-size:12px;background:#e7eddc;padding:10px 14px;border-radius:25px}.intro{font-size:13px;margin-bottom:25px}.people{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.person{border:1px solid #dfe3d6;border-radius:16px;background:#fffdf8;padding:0;text-align:left;overflow:hidden;transition:transform .2s,box-shadow .2s}.person:hover{transform:translateY(-4px);box-shadow:0 10px 30px #254d3e10}.person-art{height:120px;display:flex;justify-content:center;align-items:center;font-size:62px;position:relative;background:#e9e9dc;background-image:radial-gradient(circle at 70% 40%,#ffffff77 0,transparent 60%)}.art-1{background-color:#efe2d0}.art-2{background-color:#dce7d4}.art-3{background-color:#eedfcf}.art-4{background-color:#e1e5dd}.art-5{background-color:#e4dfee}.card-number{position:absolute;left:16px;top:12px;font:11px ui-monospace,monospace;opacity:.45}.person-content{display:block;padding:18px}.person-top{display:flex;justify-content:space-between;align-items:center;gap:5px}.person-top strong{font:23px Georgia,serif}.tag{font-size:10px;color:#7a826d;background:#f2f1e8;padding:5px 8px;border-radius:20px}.art-5+.person-content .tag{color:#826991;background:#eee8f3}.person-title{display:block;color:var(--muted);font-size:12px;margin-top:8px}.person-action{display:flex;justify-content:space-between;font-size:11px;border-top:1px solid #eceee5;padding-top:14px;margin-top:19px;font-weight:600}.complete{border-color:#8fa477}.complete .tag{background:#e3edd9;color:#3d642e}.save-note{text-align:center;font-size:11px;margin:26px 0 0;color:#88917f}footer{text-align:center;font-size:11px;color:#8a927f;padding:28px 12px 40px}.game-shell{max-width:1020px;margin:auto;padding:26px 24px 40px}.text-button{background:transparent;border:0;padding:10px 0;font-size:12px;color:var(--muted)}.game-heading{margin:24px 0}.game-heading h1{font-size:37px;margin:12px 0}.game-heading p{max-width:620px}.play-layout{display:grid;grid-template-columns:260px minmax(0,480px);gap:50px;justify-content:center}.mission{padding-top:20px}.goals{margin-top:20px}.goal{display:flex;gap:12px;align-items:center;margin-bottom:20px}.goal>span{width:38px;font-size:28px;text-align:center}.goal img{width:38px;height:38px;object-fit:contain}.goal>div{flex:1}.goal-label{display:flex;justify-content:space-between;font-size:12px}.goal-label b{font-weight:600}progress{width:100%;height:6px;display:block;margin-top:8px;accent-color:#7b9664;border:0;border-radius:6px;overflow:hidden;background:#e3e8db}progress::-webkit-progress-bar{background:#e3e8db}progress::-webkit-progress-value{background:#7b9664;border-radius:6px}.gift{background:#eeefe3;border:1px solid #e0e5d4;border-radius:14px;padding:20px;margin-top:32px;font-size:13px}.gift>span{font-size:24px;display:block;margin-bottom:10px}.gift strong{font-size:13px}.gift p{font-size:12px;margin:8px 0 0}.game-stats{display:flex;justify-content:space-between;padding:12px 8px 17px;font-size:12px;color:var(--muted)}.game-stats strong{font-size:24px;color:var(--green);font-weight:650;margin-right:5px}.board{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;padding:12px;background:#cdd8be;border:1px solid #bccba9;border-radius:20px;box-shadow:0 6px 0 #b8c7a6,0 14px 35px #2f50391a;touch-action:none;user-select:none}.tile{aspect-ratio:1;border:1px solid #fff9;border-radius:10px;padding:4px;background:#f3f0e3;position:relative;min-width:0;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 0 #a8b59c;transition:transform .15s,opacity .18s}.tile img{width:100%;height:100%;object-fit:contain;pointer-events:none}.type-nouki{background:#e9e8ef}.type-max{background:#f1e3ce}.type-coffee{background:#e3eaf0}.type-wine{background:#eff0d5}.type-netflix{background:#f0dbd8}.tile.selected{outline:3px solid #547343;transform:scale(1.07);z-index:1}.tile.locked{border:2px solid #ad9165;background-image:repeating-linear-gradient(45deg,transparent 0 8px,#98743c18 8px 10px)}.lock-mark,.leaf-mark,.special-mark{position:absolute;font-size:16px;bottom:-3px;right:-2px;filter:drop-shadow(0 1px 1px #fff)}.leaf-mark{left:-3px;right:auto}.special-mark{left:0;right:0;top:-8px;bottom:auto;font-size:24px;text-align:center;color:#a84872;font-weight:bold}.special{box-shadow:inset 0 0 0 2px #c984b3,0 2px 0 #a8b59c}.bomb-symbol{font-size:30px}.tile.pop{transform:scale(.3);opacity:0}.tile.hint{outline:3px solid #c88a38;animation:pulse .7s ease-in-out infinite alternate}.status{text-align:center;font-size:12px;min-height:42px;margin:21px 0 9px;line-height:1.5}.boosters{display:flex;justify-content:center;gap:8px;align-items:center}.booster{border:1px solid #d9dfce;background:#fffdf8;padding:10px 12px;border-radius:12px;font-size:11px;display:flex;gap:6px;align-items:center;min-height:44px}.booster span{font-size:18px}.booster b{background:#e6ecd9;border-radius:50%;padding:3px 6px}.booster.active{outline:2px solid #a26b47;background:#f6ebd6}.booster-note{text-align:center;font-size:10px;margin:13px 0 0}.play-area>#restart{display:block;margin:6px auto}dialog{border:1px solid #d5ddc9;border-radius:24px;background:#fffdf7;color:var(--green);padding:32px;max-width:480px;width:calc(100% - 32px);max-height:90dvh;box-shadow:0 30px 100px #173f3c44;text-align:center}dialog::backdrop{background:#1a302970;backdrop-filter:blur(4px)}dialog h2{font-size:32px}dialog p{font-size:14px}.result-icon{font-size:60px;margin:4px 0 20px}.primary{display:block;width:100%;padding:15px 20px;background:var(--green);border:0;color:#fff;border-radius:12px;font-size:14px;margin-top:24px}.rules{text-align:left;padding-left:20px;color:var(--muted);font-size:13px;line-height:1.6}.rules li{margin:12px 0}.all-won{background:#e7ecd9;border-radius:16px;text-align:center;padding:28px;margin-top:28px}.all-won>span{font-size:48px}.all-won p{margin-bottom:0}@keyframes pulse{to{filter:brightness(1.15)}}@media(min-width:900px){.hero{padding-top:65px}.hero-icons{margin-top:30px}}@media(max-width:700px){.topbar{height:70px;padding:0 20px}.topbar a{font-size:10px;letter-spacing:1.3px}.hero{padding-top:38px}.hero-icons{gap:10px}.hero-icons img{width:54px;height:63px}.hero-icons img:last-child{width:46px}.journey{padding:20px 18px}.section-heading{align-items:flex-start}.section-heading h2{font-size:25px;max-width:200px}.progress-pill{font-size:10px;padding:8px 10px}.people{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.person-art{height:103px;font-size:50px}.person-content{padding:13px 11px}.person-top strong{font-size:21px}.tag{font-size:9px;padding:4px 5px}.person-title{font-size:11px;min-height:30px}.person-action{font-size:10px;line-height:1.5;margin-top:10px;padding-top:10px;gap:6px}.game-shell{padding:16px 14px 30px}.game-heading{margin:16px 0}.game-heading h1{font-size:29px;letter-spacing:-.7px}.game-heading p{font-size:12px;margin-bottom:8px}.play-layout{display:flex;flex-direction:column;gap:10px;max-width:480px;margin:auto}.mission{padding:0}.mission>.eyebrow{display:none}.goals{display:flex;gap:12px;margin:0}.goal{flex:1;gap:5px;margin-bottom:0;min-width:0}.goal>span{width:26px;font-size:22px}.goal img{width:26px;height:30px}.goal-label{font-size:10px;flex-wrap:wrap;gap:3px}.goal-label b{white-space:nowrap}.gift{padding:10px 12px;margin-top:12px;display:flex;gap:8px;align-items:center}.gift>span{margin:0;font-size:20px}.gift strong{display:none}.gift p{font-size:11px;margin:0;line-height:1.4}.board{gap:4px;padding:9px;border-radius:15px}.tile{border-radius:8px;padding:3px}.game-stats{padding-top:7px}.game-stats strong{font-size:22px}.boosters{gap:6px}.booster{font-size:10px;padding:9px 8px}.status{font-size:11px}dialog{padding:24px}.game-heading .eyebrow{font-size:9px}.lock-mark,.leaf-mark{font-size:13px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.header-actions{display:flex;gap:8px}.tile.falling{animation:fall-in .28s ease-out both}@keyframes fall-in{from{transform:translateY(var(--fall-distance,-110%));opacity:.35}to{transform:translateY(0);opacity:1}}.board[aria-busy="true"]{overflow:hidden}.board[aria-busy="true"] .tile{cursor:wait}
@media(max-width:380px){.topbar{padding:0 12px}.topbar a{font-size:9px;gap:6px;letter-spacing:.8px}.header-actions{gap:4px}}
@media(max-width:700px){.goals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.goal-label{gap:5px}}
