/* The capture stays compact so the host's live picture remains visible. */
.source-page #goal-stage { position:absolute; width:1080px; height:1920px; transform-origin:top left; color:#fffdf1; font-family:Inter,"Segoe UI",sans-serif; background:transparent; }
.source-page #goal-stage * { box-sizing:border-box; }
.gm-capture { position:absolute; left:54px; right:54px; top:225px; text-shadow:0 2px 1px #15130c,2px 0 1px #15130c,-2px 0 1px #15130c,0 -2px 1px #15130c,0 3px 8px #000a; }
.gm-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; }
.gm-brand { margin:0 0 9px; color:#ffd43b; font-size:20px; font-weight:800; letter-spacing:4px; }
.gm-heading h1 { margin:0; font-size:58px; font-weight:900; line-height:1; letter-spacing:-2.7px; }
.gm-heading h1 span { color:#ffd43b; }
.gm-round { margin:0 0 5px; font-size:23px; letter-spacing:2px; font-weight:800; color:#ffd43b; }
.gm-goal { margin:24px 0 12px; display:flex; align-items:baseline; justify-content:space-between; gap:20px; }
.gm-goal p { margin:0; font-size:32px; line-height:1.2; font-weight:750; overflow-wrap:anywhere; max-width:630px; }
.gm-goal>span { font-size:21px; line-height:1.3; text-align:right; max-width:300px; }
.gm-score { display:flex; justify-content:space-between; align-items:baseline; gap:20px; margin:0 0 18px; }
.gm-score>p { display:flex; align-items:baseline; gap:18px; margin:0; font-variant-numeric:tabular-nums; }
.gm-score>p>strong { font-size:104px; font-weight:900; line-height:1; letter-spacing:-6px; color:#ffd43b; }
.gm-score>p>span { display:flex; align-items:baseline; gap:9px; font-size:38px; }
.gm-score b { font-weight:750; }
.gm-score small { margin-left:4px; font-size:20px; font-weight:700; letter-spacing:2px; }
.gm-percent { font-size:72px; font-variant-numeric:tabular-nums; font-weight:900; letter-spacing:-4px; line-height:1; }
.gm-percent>span { font-size:37px; letter-spacing:-1px; margin-left:3px; }
.gm-bar-wrap { position:relative; }
.gm-bar { position:relative; width:100%; height:69px; border:3px solid #fff1a3; border-radius:18px; background:linear-gradient(180deg,#463b3a45,#221f2445); box-shadow:0 0 0 3px #30270f,0 5px 18px #0004; }
.gm-fill { width:0; height:100%; position:relative; border-radius:13px; background:linear-gradient(180deg,#fff29b 0%,#ffd43b 48%,#e9a514 100%); box-shadow:0 0 20px #ffd43b50,inset 0 2px 0 #fff8c0; transition:width .55s cubic-bezier(.18,.85,.25,1); overflow:hidden; }
.gm-fill>i { display:block; position:absolute; inset:0; background:repeating-linear-gradient(115deg,transparent 0,transparent 20px,#fff7 20px,#fff7 22px,transparent 22px,transparent 40px); opacity:.26; }
.gm-grid { position:absolute; inset:0; display:flex; pointer-events:none; }
.gm-grid>i { display:block; width:25%; border-right:2px solid #fff9; }
.gm-finish { position:absolute; right:-20px; top:-13px; color:#fff5b4; font-size:80px; line-height:1; text-shadow:0 0 12px #ffbf00,0 2px 4px #493908; }
.gm-milestones { position:relative; height:60px; margin-top:12px; font-weight:750; font-size:24px; font-variant-numeric:tabular-nums; }
.gm-milestones>span { position:absolute; transform:translateX(-50%); text-align:center; color:#e9e4d7; opacity:.8; }
.gm-milestones>span:nth-child(1) { left:25%; }.gm-milestones>span:nth-child(2) { left:50%; }.gm-milestones>span:nth-child(3) { left:75%; }
.gm-milestones>span>i { font-style:normal; font-size:18px; margin-right:6px; color:#f7edc8; }
.gm-milestones>span.reached { color:#ffd43b; opacity:1; }.gm-milestones>span.reached>i { color:#ffd43b; }
.gm-milestones>.gm-end { left:100%; font-size:20px; letter-spacing:1px; transform:translateX(-75%); opacity:1; }
.gm-reaction { display:flex; align-items:center; justify-content:center; gap:24px; min-height:74px; margin:6px 0 18px; }
.gm-recent { min-height:38px; margin:0; color:#fff7d0; font-size:27px; line-height:1.4; font-weight:650; text-align:center; overflow-wrap:anywhere; }
.gm-gifts { display:flex; align-items:flex-start; gap:24px; padding-top:16px; border-top:2px solid #ffe88b80; }
.gm-gift { flex:1; min-width:0; display:flex; gap:12px; align-items:flex-start; }
.gm-gift .tt-core-gift-icon { width:57px; height:63px; flex:0 0 57px; object-fit:contain; filter:drop-shadow(0 2px 2px #0008); }
.gm-gift-copy { min-width:0; padding-top:2px; }
.gm-gift strong { display:block; font-size:25px; line-height:1.2; font-weight:850; color:#fff8d8; }
.gm-gift span { display:block; font-size:21px; line-height:1.35; margin-top:5px; }
.gm-gift small { font-size:20px; line-height:1.3; display:block; margin-top:5px; color:#f0eadb; }
.gm-gift.empty { opacity:.7; }
.gm-how { margin:20px 0 0; display:flex; justify-content:center; gap:32px; color:#fff6d2; font-size:22px; font-weight:600; }
.gm-how>span+span::before { content:'·'; margin-right:32px; color:#ffd43b; }
.gm-footer { margin:18px 0 0; text-align:center; font-size:17px; letter-spacing:.5px; color:#ede6d0; }
.gm-mode { position:absolute; top:170px; left:54px; width:972px; font-size:23px; font-weight:800; letter-spacing:2px; color:#ffd43b; text-shadow:0 2px 2px #15130c,2px 0 1px #15130c,-2px 0 1px #15130c; }
.gm-mode:empty { display:none; }
.gm-result { text-align:center; margin:-4px 0 18px; }
.gm-result[hidden] { display:none; }
.gm-result>strong { display:block; font-size:56px; line-height:1.1; font-weight:900; letter-spacing:-2px; color:#ffd43b; }
.gm-result>p { font-size:24px; margin:10px 0 0; line-height:1.35; }
.gm-capture.complete .gm-fill { box-shadow:0 0 32px #ffd43baa,inset 0 2px 0 #fff8c0; animation:gm-glow 1s ease-in-out infinite alternate; }
.gm-milestone-pop { position:absolute; left:50%; top:105px; transform:translateX(-50%); width:100%; text-align:center; pointer-events:none; font-size:34px; font-weight:900; color:#ffd43b; letter-spacing:1px; z-index:2; }
.gm-milestone-pop:not(:empty) { animation:gm-milestone .55s cubic-bezier(.2,.8,.2,1) both; }
.gm-action-pop { flex:none; pointer-events:none; font-size:48px; font-weight:900; color:#ffd43b; line-height:1; }
.gm-action-pop:empty { display:none; }
.gm-action-pop.heart { color:#ff95bd; font-size:64px; }.gm-action-pop.cheer { font-size:42px; letter-spacing:-2px; }
.gm-action-pop:not(:empty) { animation:gm-pop .7s cubic-bezier(.2,.8,.2,1) both; }
.gm-confetti { position:absolute; inset:-70px -30px -100px; pointer-events:none; overflow:visible; }
.gm-confetti>i { position:absolute; top:25px; left:50%; width:11px; height:21px; border-radius:2px; background:#ffd43b; opacity:0; animation:gm-confetti 2.4s cubic-bezier(.12,.65,.3,1) infinite; }
.gm-confetti>i:nth-child(3n) { background:#fff4bd; }.gm-confetti>i:nth-child(3n+1) { background:#ffb52e; }
.source-page #goal-stage .tt-core-overlay-status { position:absolute; top:25px; left:54px; width:972px; max-width:none; transform:none; margin:0; }
.source-page #goal-stage .tt-core-notice { font-size:25px; padding:18px 22px; }.source-page #goal-stage .tt-core-notice strong { font-size:27px; }
.source-page #goal-stage .tt-core-status:not([data-connected="true"]) .tt-core-notice { background:transparent; box-shadow:none; border-color:#ffd43b; text-shadow:0 2px 2px #15130c,2px 0 1px #15130c,-2px 0 1px #15130c; }
.source-page #goal-stage [hidden] { display:none!important; }
.source-page[data-reduced-motion="1"] .gm-fill { transition:none; }.source-page[data-reduced-motion="1"] .gm-capture *, .source-page[data-reduced-motion="1"] .gm-capture *::before { animation:none!important; }
@keyframes gm-glow { from { filter:brightness(1); } to { filter:brightness(1.12); } }
@keyframes gm-milestone { from { opacity:0; transform:translate(-50%,15px) scale(.7); } to { opacity:1; transform:translate(-50%,0) scale(1); } }
@keyframes gm-pop { 0% { opacity:0; transform:translateY(25px) rotate(-12deg) scale(.3); } 60% { opacity:1; transform:translateY(-8px) rotate(6deg) scale(1.1); } 100% { opacity:1; transform:translateY(0) rotate(0) scale(1); } }
@keyframes gm-confetti { 0% { opacity:0; transform:translate(0,0) rotate(0); } 8% { opacity:1; } 80% { opacity:1; } 100% { opacity:0; transform:translate(var(--dx),var(--dy)) rotate(var(--turn)); } }

/* Hosted gift list: keep effect lines at the 14px minimum. */
.gift-copy small { font-size: 14px; }
