:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;color:var(--tg-app-text, #f8f0df);background:var(--tg-app-bg, #100d0a);--panel: var(--tg-app-panel, #19130f);--panel-strong: #211812;--text: var(--tg-app-text, #f8f0df);--muted: var(--tg-app-muted, #b7aa94);--gold: var(--tg-app-button, #f0c060);--gold-deep: #8b6420;--plush: #f6c5a8;--button-text: var(--tg-app-button-text, #251704);--border: rgba(240, 192, 96, .22);--shadow: 0 24px 80px rgba(0, 0, 0, .45)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;min-height:100dvh;overflow-x:hidden}button{font:inherit}.app-shell{display:grid;min-height:100vh;min-height:100dvh;padding:max(16px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));place-items:center;background:radial-gradient(circle at 50% 6%,rgba(240,192,96,.2),transparent 32%),radial-gradient(circle at 10% 80%,rgba(246,197,168,.14),transparent 28%),linear-gradient(180deg,#17100c,#0d0b09)}.ritual-card{position:relative;width:min(100%,460px);min-height:min(720px,calc(100dvh - 32px));display:grid;grid-template-rows:auto auto auto minmax(200px,1fr) auto auto;gap:12px;padding:clamp(16px,4vw,24px);border:1px solid var(--border);border-radius:28px;background:linear-gradient(180deg,rgba(255,255,255,.035),transparent),radial-gradient(circle at 50% 36%,rgba(240,192,96,.15),transparent 42%),var(--panel);box-shadow:var(--shadow);overflow:hidden}.ritual-card>:not(.confetti-layer){position:relative;z-index:1}.confetti-layer{position:absolute;inset:0;z-index:3;overflow:hidden;border-radius:inherit;pointer-events:none}.confetti-piece{position:absolute;top:28%;left:var(--x);width:var(--size);height:calc(var(--size) * 1.55);border-radius:3px;background:var(--confetti-color);box-shadow:0 0 12px #ffe7b338;opacity:0;transform:translate(-50%) rotate(var(--rotation));animation:confetti-burst var(--duration) cubic-bezier(.12,.72,.16,1) var(--delay) forwards}.app-header,.score-row,.actions{display:flex;align-items:center;justify-content:space-between;gap:14px}.eyebrow,.gift-receipt span,.gift-shelf-heading span,.result-panel small,.score-row small{display:block;margin:0 0 3px;color:var(--muted);font-size:12px;font-weight:800;letter-spacing:0;text-transform:uppercase}h1,h2,p{margin:0}h1{font-size:clamp(32px,9vw,48px);line-height:.95;letter-spacing:0}.timer{width:74px;height:74px;display:grid;flex:0 0 auto;place-items:center;border:1px solid rgba(246,197,168,.38);border-radius:50%;background:radial-gradient(circle at 35% 25%,#ffe4b5,var(--gold) 44%,var(--gold-deep));color:#211306;box-shadow:inset 0 -8px 18px #00000038,0 14px 34px #00000057}.timer span{font-size:27px;font-weight:900;line-height:.8}.timer small{margin-top:-14px;color:#50350c;font-size:11px;font-weight:900;text-transform:uppercase}.score-row{padding:14px;border:1px solid rgba(255,255,255,.08);border-radius:18px;background:#0000002e}.score-row div{min-width:0}.score-row div:last-child{text-align:right}.score-row strong{display:block;max-width:180px;color:var(--text);font-size:clamp(19px,5vw,28px);font-weight:900;line-height:1.04;overflow-wrap:anywhere}.gift-panel{padding:14px;border:1px solid rgba(246,197,168,.16);border-radius:18px;background:radial-gradient(circle at 95% 0%,rgba(246,197,168,.12),transparent 34%),#0003}.gift-panel.is-unlocked{border-color:#f0c06085;box-shadow:inset 0 0 26px #f0c0601a}.gift-topline{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}.gift-topline small,.gift-topline span{color:var(--muted);font-size:11px;font-weight:900;letter-spacing:0;text-transform:uppercase}.gift-topline span{color:#ffe7b3}.gift-panel h2{color:#ffe7b3;font-size:clamp(22px,6vw,30px);line-height:1.02;letter-spacing:0}.gift-panel p{margin-top:8px;color:var(--muted);font-size:14px;line-height:1.42}.gift-meter{height:9px;margin-top:12px;overflow:hidden;border-radius:999px;background:#ffffff14}.gift-meter span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--plush),var(--gold));transition:width .16s ease}.plush-button{position:relative;width:min(100%,clamp(220px,58vw,300px));aspect-ratio:1;align-self:center;justify-self:center;padding:0;border:0;border-radius:50%;background:radial-gradient(circle at 50% 50%,rgba(240,192,96,.22),transparent 58%),radial-gradient(circle at 50% 55%,rgba(0,0,0,.36),transparent 68%);cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.plush-button:disabled{cursor:default}.plush-button picture,.plush-button img{display:block;width:100%;height:100%}.plush-button img{object-fit:contain;filter:drop-shadow(0 24px 34px rgba(0,0,0,.5));transform:translateY(0) scale(1);transition:transform .11s ease,filter .11s ease}.plush-button.is-tapped img{filter:drop-shadow(0 14px 22px rgba(0,0,0,.46));transform:translateY(8px) scale(.965)}.tap-ring{position:absolute;inset:12%;border:2px solid rgba(240,192,96,.22);border-radius:50%;pointer-events:none}.tap-burst{position:absolute;translate:-50% -50%;color:#fff2cc;font-size:18px;font-weight:900;text-shadow:0 2px 10px rgba(0,0,0,.5);animation:burst-float .68s ease-out forwards;pointer-events:none}.result-panel{min-height:110px;padding:18px;border:1px solid rgba(255,255,255,.08);border-radius:20px;background:linear-gradient(180deg,#211812eb,#0d0b09c7)}.result-panel h2{color:#ffe7b3;font-size:clamp(26px,7vw,38px);line-height:1;letter-spacing:0}.result-panel p{margin-top:10px;color:var(--muted)}.result-panel.is-visible{border-color:#f0c0606b;box-shadow:inset 0 0 30px #f0c06014}.gift-receipt,.gift-shelf{padding:14px;border:1px solid rgba(246,197,168,.16);border-radius:18px;background:radial-gradient(circle at 12% 24%,rgba(240,192,96,.16),transparent 34%),#0003}.gift-receipt{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;border-color:#f0c06085;box-shadow:inset 0 0 26px #f0c0601a}.gift-receipt strong{display:block;margin-top:2px;color:#ffe7b3;font-size:clamp(19px,5vw,25px);line-height:1.04}.gift-receipt p{margin-top:6px;color:var(--muted);font-size:13px;line-height:1.35}.gift-receipt small{max-width:116px;color:#ffe7b3;font-size:11px;font-weight:900;line-height:1.12;text-align:right}.gift-shelf-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.gift-shelf-heading strong{color:#ffe7b3;font-size:12px;line-height:1}.gift-shelf-row{min-height:44px;margin-top:8px;display:grid;grid-template-columns:repeat(auto-fit,minmax(122px,1fr));gap:8px}.gift-shelf-row article{min-width:0;min-height:52px;padding:8px;border:1px solid rgba(246,197,168,.15);border-radius:12px;background:#ffffff0b}.gift-shelf-row article strong,.gift-shelf-row article small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gift-shelf-row article strong{color:var(--text);font-size:13px}.gift-shelf-row article small{margin-top:2px;color:var(--muted);font-size:11px}.actions{justify-content:stretch}.actions button{min-height:52px;flex:1 1 0;border-radius:16px;border:1px solid rgba(255,255,255,.12);cursor:pointer;font-weight:900}.actions button:disabled{cursor:not-allowed;opacity:.45}.primary-action{background:linear-gradient(180deg,#ffe4b5,var(--gold));color:var(--button-text)}.secondary-action{background:var(--panel-strong);color:var(--text)}@keyframes burst-float{0%{opacity:0;transform:translateY(6px) scale(.84)}20%{opacity:1}to{opacity:0;transform:translateY(-56px) scale(1.12)}}@keyframes confetti-burst{0%{opacity:0;transform:translate(-50%) rotate(var(--rotation)) scale(.4)}12%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--drift)),520px) rotate(calc(var(--rotation) + 720deg)) scale(1)}}@media(max-height:720px){.ritual-card{gap:10px;min-height:auto}.plush-button{width:min(100%,210px)}.result-panel{min-height:104px}.gift-panel,.result-panel{padding:14px}}@media(max-width:380px){.timer{width:64px;height:64px}.timer span{font-size:24px}.score-row strong{max-width:140px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
