/** Cinematic gift panels. Facts, clues and claim state remain server-owned. */
.tg-gift-section { margin-block:32px 48px; }
.tg-gift-panel { --gift-surface:#fff; --gift-text:#151427; --gift-muted:#5c6178; --gift-line:#e3e5f0; --gift-accent:#7027ef; --gift-soft:#f1effa; color:var(--gift-text); padding:34px 0 0; }
.tg-gift-intro { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:0 28px; align-items:center; margin-bottom:28px; }
.tg-gift-eyebrow { grid-column:1; margin:0 0 10px; font-size:11px; font-weight:700; letter-spacing:.21em; color:var(--gift-accent,#7027ef); }
.tg-gift-intro h2 { grid-column:1; font-family:inherit; font-size:clamp(27px,2.65vw,43px); line-height:1.16; letter-spacing:-.045em; font-weight:800; margin:0 0 10px; max-width:930px; text-wrap:balance; }
.tg-gift-title-highlight { color:var(--gift-accent); }
.tg-gift-description { grid-column:1; margin:0; color:var(--gift-muted); font-size:14px; line-height:1.7; }
.tg-gift-primary,.tg-gift-card-cta { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:46px; border:0; border-radius:10px; padding:12px 18px; background:linear-gradient(110deg,#8147fa,#6c1ce9); color:#fff!important; font-size:13px; font-weight:650; text-decoration:none; box-shadow:0 5px 16px #7027ef21; cursor:pointer; transition:transform .2s,box-shadow .2s; }
.tg-gift-primary:hover,.tg-gift-card-cta:hover { transform:translateY(-2px); box-shadow:0 8px 22px #7027ef40; }
.tg-gift-intro>.tg-gift-primary { grid-column:2; grid-row:1/3; min-width:210px; }
.tg-gift-facebook { grid-column:2; justify-self:center; font-size:12px; color:var(--gift-muted); padding:12px 8px; text-decoration:none; }
.tg-gift-facebook:hover { text-decoration:underline; }
.tg-gift-text-link { display:inline-flex; align-items:center; gap:8px; min-height:44px; color:var(--gift-muted,#5c6178); font-size:13px; text-decoration:underline; text-underline-offset:4px; }
.tg-gift-content { min-width:0; }
.tg-gift-rail { display:flex; gap:18px; margin:0; padding:2px 2px 14px; list-style:none; overflow-x:auto; scroll-snap-type:x proximity; scrollbar-width:thin; overscroll-behavior-inline:contain; }
.tg-gift-card { flex:1 0 0; min-width:0; display:flex; flex-direction:column; overflow:hidden; border:1px solid var(--gift-line,#e3e5f0); border-radius:16px; background:var(--gift-surface,#fff); box-shadow:0 4px 14px #19123706; scroll-snap-align:start; color:var(--gift-text,#151427); }
.tg-gift-stage { position:relative; height:232px; overflow:hidden; isolation:isolate; display:grid; place-items:center; background:#101e36; }
.tg-gift-scene { position:absolute; z-index:-2; inset-block:0; left:0; width:300%; max-width:none!important; height:100%; object-fit:cover; pointer-events:none; }
.tg-gift-card--playstation .tg-gift-scene { left:-100%; }
.tg-gift-card--secret-game .tg-gift-scene,.tg-gift-card--pc .tg-gift-scene,.tg-gift-card--other .tg-gift-scene { left:-200%; }
.tg-gift-stage::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(0deg,#02050a55,transparent 55%); }
.tg-gift-badge { position:absolute; top:14px; inset-inline-start:14px; z-index:4; padding:7px 11px; border-radius:30px; background:#a1f8e1; color:#092f2b; font-size:10px; font-weight:800; letter-spacing:.02em; line-height:1.2; }
.tg-gift-card--mystery .tg-gift-badge { color:#4019a2; background:#e4dbff; }
.tg-gift-art { width:215px; height:146px; margin-top:22px; position:relative; overflow:hidden; isolation:isolate; transform:rotate(-11deg); border:1px solid #d9efff; border-radius:9px; background:linear-gradient(130deg,#0b121e,#152a47); box-shadow:5px 15px 28px #0009,inset 0 0 0 4px #ffffff0d; transition:transform .25s; color:white; }
.tg-gift-card:hover .tg-gift-art { transform:translateY(-3px) rotate(-7deg); }
.tg-gift-art-pattern { position:absolute; inset:7px; border:1px solid #ffffff1a; border-radius:5px; background:linear-gradient(120deg,transparent 40%,#ffffff0d 40.4%,transparent 75%); }
.tg-gift-art-pattern::after { content:''; position:absolute; width:160%; height:1px; background:#95d9ff22; top:65%; left:-25%; transform:rotate(-24deg); box-shadow:0 25px #95d9ff15; }
.tg-gift-platform { position:absolute; inset:16px; display:flex; justify-content:center; align-items:center; gap:10px; flex-wrap:wrap; align-content:center; text-shadow:0 2px 6px #0004; }
.tg-gift-platform>img,.tg-gift-platform>svg { width:48px; height:48px; object-fit:contain; filter:brightness(0) invert(1); }
.tg-gift-card--steam .tg-gift-platform>img { filter:none; }
.tg-gift-platform>span { font-size:25px; font-weight:750; letter-spacing:.02em; }
.tg-gift-platform>strong { font-size:34px; font-weight:750; flex-basis:100%; text-align:center; line-height:1; }
.tg-gift-card--playstation .tg-gift-art { width:186px; height:162px; transform:rotate(-8deg); background:linear-gradient(125deg,#0753c0,#003588 65%,#1160c4); border-color:#b4d6ff; }
.tg-gift-card--playstation .tg-gift-platform { align-content:start; }
.tg-gift-card--playstation .tg-gift-platform>img { position:absolute; top:0; left:50%; transform:translateX(-50%); width:42px; height:42px; }
.tg-gift-card--playstation .tg-gift-platform>span { position:absolute; top:47px; inset-inline:0; text-align:center; font-size:14px; }
.tg-gift-card--playstation .tg-gift-platform>strong { position:absolute; top:78px; inset-inline:0; font-size:28px; }
.tg-gift-secret-chips { position:absolute; inset:70px -25px auto; padding:13px 18px; display:flex; justify-content:center; gap:10px; background:linear-gradient(100deg,#c4cadc,#eaecf3,#b6bed6); box-shadow:0 3px 9px #0004; transform:rotate(2deg); }
.tg-gift-secret-chips>span { padding:5px 20px; color:#e7e9f4; background:#66718ea6; border:1px solid #969db1; border-radius:4px; font-size:17px; font-weight:700; }
.tg-gift-card--secret-game .tg-gift-art { width:146px; height:184px; transform:rotate(-6deg); background:#263040; }
.tg-gift-cover { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.tg-gift-card--secret-game .tg-gift-platform { inset:10px; align-content:center; }
.tg-gift-card--secret-game .tg-gift-platform>img { position:absolute; inset-block-start:0; inset-inline-end:0; width:28px; height:28px; }
.tg-gift-card--secret-game .tg-gift-platform>span { display:none; }
.tg-gift-platform>.tg-gift-question-mark { font-size:76px; text-shadow:0 4px 20px #0009; }
.tg-gift-card-copy { padding:16px; display:flex; flex:1; flex-direction:column; gap:9px; }
.tg-gift-card-heading { display:flex; flex-wrap:wrap; gap:6px 9px; align-items:center; }
.tg-gift-card-copy h3 { margin:0; font-family:inherit; font-size:15px; font-weight:700; line-height:1.5; color:var(--gift-text,#151427); overflow-wrap:anywhere; }
.tg-gift-region,.tg-gift-hidden-facts>span { border:1px solid var(--gift-line,#e3e5f0); border-radius:20px; background:var(--gift-soft,#f1effa); padding:3px 8px; font-size:10px; }
.tg-gift-card-copy p { margin:0; color:var(--gift-muted,#5c6178); font-size:12px; line-height:1.6; }
.tg-gift-hidden-facts { display:flex; flex-wrap:wrap; gap:7px; }
.tg-gift-hidden-facts>span { font-size:11px; }
.tg-gift-hidden-facts b { margin-inline-start:4px; }
.tg-gift-clue-progress { display:flex; gap:4px; margin-top:2px; }
.tg-gift-clue-progress span { width:24px; height:3px; border-radius:3px; background:var(--gift-line,#e3e5f0); }
.tg-gift-clue-progress .is-ready { background:#8756ec; }
.tg-gift-card-bottom { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:auto; padding-top:4px; }
.tg-gift-card-cta { min-height:44px; padding:9px 11px; border-radius:8px; font-size:11px; gap:6px; }
.tg-gift-state { display:inline-flex; align-items:center; gap:5px; color:var(--gift-muted,#5c6178); font-size:10px; line-height:1.4; }
.tg-gift-state::before { content:''; flex-shrink:0; width:5px; height:5px; border-radius:50%; background:#9f8ac8; }
.tg-gift-footer { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:14px 20px; margin-top:2px; border:1px solid var(--gift-line); border-radius:12px; background:var(--gift-surface); }
.tg-gift-journey { display:flex; align-items:center; gap:14px; color:var(--gift-text); font-size:11px; text-decoration:none; min-height:44px; }
.tg-gift-journey span { display:inline-flex; align-items:center; gap:7px; }
.tg-gift-journey b { color:var(--gift-accent); font-size:13px; font-weight:800; }
.tg-gift-journey>[aria-hidden] { color:var(--gift-muted); }
.tg-gift-winner { display:flex; align-items:center; gap:10px; font-size:11px; line-height:1.6; color:var(--gift-muted); border-inline-start:1px solid var(--gift-line); padding-inline-start:20px; margin:0; }
.tg-gift-winner strong { color:var(--gift-text); font-weight:600; }
.tg-gift-winner>svg { flex-shrink:0; color:#b97a19; }
.tg-gift-empty { display:grid; place-content:center; text-align:center; min-height:300px; padding:36px; border:1px dashed var(--gift-line); border-radius:16px; background:var(--gift-surface); color:var(--gift-muted); margin-bottom:16px; }
.tg-gift-empty>span { font-size:55px; color:var(--gift-accent); }
.tg-gift-empty h3 { font-size:25px; font-weight:750; color:var(--gift-text); margin-block:12px; }
.tg-gift-page { padding-block:32px 60px; }
.tg-gift-details { max-width:820px; margin:24px auto; padding:32px; border:1px solid var(--tg-border,#e3e6ee); border-radius:20px; background:var(--tg-bg-card,#fff); color:var(--tg-text-primary,#151525); }
.tg-gift-details h1 { font-size:30px; line-height:1.2; font-weight:800; margin:0 0 24px; }
.tg-gift-details h2 { font-size:20px; font-weight:700; margin-block:24px 12px; }
.tg-gift-details p { margin-block:12px; line-height:1.7; }
.tg-gift-steps { list-style:decimal; padding-inline-start:24px; line-height:1.8; }
.tg-gift-steps li { padding:8px; }
.tg-gift-facts { display:grid; gap:16px; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); margin-block:24px; }
.tg-gift-facts dt,.tg-gift-muted { color:var(--tg-text-secondary,#536078); font-size:13px; }
.tg-gift-facts dd { font-weight:650; margin:6px 0; }
.tg-gift-terms { white-space:pre-line; overflow-wrap:anywhere; }
.tg-gift-claim-form { display:grid; gap:14px; margin-block-start:24px; }
.tg-gift-claim-form label:has(input[type=checkbox]),.tg-gift-check { display:flex; align-items:flex-start; gap:10px; line-height:1.6; }
.tg-gift-claim-form input[type=checkbox],.tg-gift-check input { width:20px; height:20px; flex-shrink:0; margin-block-start:3px; }
.tg-gift-claim-form input:not([type=checkbox]):not([type=hidden]) { border:1px solid #a5adc0; border-radius:8px; padding:12px; font-size:16px; background:var(--tg-bg-card,#fff); color:inherit; }
.tg-gift-error { padding:16px; color:#a32232; background:#fff0f1; border:1px solid #efb2bb; border-radius:10px; }
.tg-gift-award { padding-block:12px 28px; border-block-end:1px solid var(--tg-border,#e3e6ee); }
.tg-gift-key { display:block; padding:20px; border-radius:10px; border:1px dashed #7864b8; background:#7134d20b; overflow-wrap:anywhere; font-size:20px; user-select:all; }
.tg-gift-panel :focus-visible,.tg-gift-details :focus-visible,.tg-gift-admin :focus-visible { outline:3px solid #9560ed; outline-offset:4px; }
.tg-gift-admin { max-width:1280px; margin:auto; }
.tg-gift-admin h1 { font-size:26px; font-weight:750; margin:20px 0; }
.tg-gift-admin h2 { font-size:20px; font-weight:700; margin:28px 0 16px; }
.tg-gift-admin p { margin-block:12px; overflow-wrap:anywhere; }
.tg-gift-admin form { padding:24px; background:var(--tg-bg-card,#fff); border:1px solid #dfe3eb; border-radius:12px; margin-block:20px; color:#1a2335; }
.tg-gift-admin-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:20px; }
.tg-gift-admin label { display:block; font-size:14px; margin-bottom:14px; }
.tg-gift-admin input:not([type=hidden]):not([type=checkbox]),.tg-gift-admin select,.tg-gift-admin textarea { display:block; border:1px solid #a9b2c4; border-radius:7px; padding:10px; margin-top:6px; width:100%; background:white; color:#1a2335; }
.tg-gift-admin fieldset { padding:12px; border:1px solid #dfe3eb; border-radius:8px; }
.tg-gift-admin .tg-gift-check { display:flex; }
.tg-gift-admin-actions { display:flex; gap:12px; flex-wrap:wrap; }
.tg-gift-admin .tg-gift-rail { max-width:260px; }

.tg-gift-question { border:1px solid var(--tg-border,#dce0e3); border-radius:12px; padding:16px; margin:10px 0; }
.tg-gift-question legend { font-weight:750; padding-inline:6px; }
.tg-gift-question label { display:flex; align-items:center; gap:12px; min-height:48px; border-radius:8px; padding:8px 12px; cursor:pointer; }
.tg-gift-question label:has(input:checked) { background:#7654c91c; outline:1px solid #9a80cf; }
.tg-gift-question input[type=radio] { width:20px; height:20px; accent-color:#5633b9; }
.tg-gift-clues ol { list-style:decimal; padding-inline-start:24px; }
.tg-gift-clues li { padding:12px; margin-block:8px; background:var(--tg-bg-secondary,#f5f3ef); border-radius:8px; line-height:1.6; }
.tg-gift-challenge-art { float:inline-end; list-style:none; margin:0 0 20px; padding:0; width:230px; }
.tg-gift-challenge-art .tg-gift-card-copy { display:none; }
.tg-gift-challenge .tg-gift-facts { clear:both; }
.tg-gift-editor { margin:24px 0; padding:18px; border:1px solid #dce0e3; border-radius:10px; }
.tg-gift-editor summary { cursor:pointer; font-size:17px; font-weight:700; }
.tg-gift-editor>fieldset { margin-block:16px; }
.tg-gift-plan-history li { padding:16px; border-bottom:1px solid #dce0e3; }
.tg-gift-plan-history span { display:block; font-size:12px; color:#657184; }

[data-theme=dark] .tg-gift-panel,.dark .tg-gift-panel { --gift-surface:#0e1322; --gift-text:#f3f4ff; --gift-muted:#b6bdd5; --gift-line:#293149; --gift-accent:#ad86ff; --gift-soft:#1d2541; }
[data-theme=dark] .tg-gift-card,.dark .tg-gift-card { box-shadow:0 5px 18px #0002; }
[data-theme=dark] .tg-gift-winner>svg,.dark .tg-gift-winner>svg { color:#efc15c; }
[dir=rtl] .tg-gift-eyebrow,[dir=rtl] .tg-gift-badge { letter-spacing:0; }
[dir=rtl] .tg-gift-journey>[aria-hidden] { transform:rotate(180deg); }
@media (max-width:1100px) { .tg-gift-stage { height:210px; } .tg-gift-intro h2 { font-size:32px; } .tg-gift-footer { flex-direction:column; gap:8px; align-items:stretch; } .tg-gift-journey { justify-content:center; } .tg-gift-winner { justify-content:center; border-inline-start:0; border-block-start:1px solid var(--gift-line); padding:12px 0 0; } .tg-gift-card-bottom { flex-wrap:wrap; } .tg-gift-card-cta { width:100%; } }
@media (max-width:760px) { .tg-gift-panel { padding-top:22px; } .tg-gift-intro { display:block; margin-bottom:20px; } .tg-gift-intro h2 { font-size:30px; letter-spacing:-.035em; max-width:600px; } .tg-gift-eyebrow { font-size:10px; } .tg-gift-description { font-size:13px; margin:0 0 18px; } .tg-gift-intro>.tg-gift-primary { min-width:0; } .tg-gift-facebook { display:inline-flex; padding-inline:14px; } .tg-gift-card { flex:0 0 290px; } .tg-gift-rail { gap:14px; padding-bottom:16px; } .tg-gift-card-bottom { flex-wrap:nowrap; } .tg-gift-card-cta { width:auto; } .tg-gift-journey { gap:8px; font-size:10px; flex-wrap:wrap; } .tg-gift-journey b { font-size:11px; } .tg-gift-footer { padding:12px; } .tg-gift-winner span span { display:block; } .tg-gift-details { padding:22px 18px; } .tg-gift-details h1 { font-size:26px; } .tg-gift-challenge-art { float:none; margin-inline:auto; } }
@media (max-width:370px) { .tg-gift-card { flex-basis:260px; } .tg-gift-intro h2 { font-size:27px; } .tg-gift-intro>.tg-gift-primary { display:flex; } .tg-gift-facebook { display:flex; justify-content:center; } }
@media (prefers-reduced-motion:reduce) { .tg-gift-primary,.tg-gift-card-cta,.tg-gift-art { transition:none; } .tg-gift-primary:hover,.tg-gift-card-cta:hover,.tg-gift-card:hover .tg-gift-art { transform:none; } .tg-gift-rail { scroll-behavior:auto; } }

.tg-gift-card .tg-gift-scene { width: 100%; height: 100%; object-fit: cover; left: 0; transform: none; }
