/* Playbook lives in its own room. The playable card keeps its protected layout. */
.playbook-page{max-width:1080px}.playbook-page .page-heading h1{font-size:clamp(2rem,6vw,3.8rem)}
.playbook-page .surface{margin-block:18px}.playbook-page h2{font-size:clamp(1.35rem,3vw,2rem);line-height:1.2}
.playbook-page p{line-height:1.65;color:#e2d7ee}.playbook-doors{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0}
.playbook-doors button{font:inherit;color:#f6e5bd;background:#352844;border:1px solid #b9a8d577;border-radius:12px;padding:12px 16px;min-height:44px}
.playbook-page details>summary{font-size:1.15rem;font-weight:800;cursor:pointer;min-height:44px;padding:8px 0}
.playbook-page details[open]>summary{margin-bottom:15px}.playbook-page section[id],.playbook-page details[id]{scroll-margin-top:100px}
.mission-row{display:flex;align-items:center;gap:15px;margin:16px 0}.mission-progress{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px 16px;margin-block:15px;flex:1;min-width:0}
.mission-progress span{line-height:1.5}.mission-progress strong{font-size:.85rem;white-space:nowrap;color:#f7dfa5}
.mission-progress progress{grid-column:1/-1;width:100%;height:10px;accent-color:#52d8bd}
.earned-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:20px}.earned-prize{border:1px solid #aa96bc55;border-radius:18px;padding:20px;background:#18152e;display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.earned-prize.owned{border-color:#76dbc07a}.earned-prize h3{font-size:1.1rem;line-height:1.3}.earned-prize p{font-size:.85rem;flex:1}.earned-prize .button{width:100%}
.prize-preview{height:66px;width:90px;display:grid;place-items:center;border:3px solid #a79ab7;border-radius:13px;background:#fff7e8;color:#342348;font:900 2rem Outfit,sans-serif}.prize-preview span{display:grid;place-items:center;width:38px;height:38px;border-radius:50%}
.earned-dauber-jade .square.marked:not(.free),.prize-preview.earned-dauber-jade span{background:#087d66!important;color:#fff!important;border-color:#99eacb!important}
.earned-dauber-comet .square.marked:not(.free),.prize-preview.earned-dauber-comet span{background:#305bb4!important;color:#fff!important;border-color:#acccff!important}
.earned-dauber-rose .square.marked:not(.free),.prize-preview.earned-dauber-rose span{background:#b02a66!important;color:#fff!important;border-color:#ffb6d5!important}
.earned-dauber-team .square.marked:not(.free),.prize-preview.earned-dauber-team span{background:#7a3bb3!important;color:#fff!important;border-color:#e5c2ff!important}
.board-frame.earned-frame-garden,.prize-preview.earned-frame-garden{outline:3px solid #4baf85;outline-offset:-3px}.board-frame.earned-frame-laurel,.prize-preview.earned-frame-laurel{outline:4px solid #c5a144;outline-offset:-4px}
.board-frame.earned-frame-together,.prize-preview.earned-frame-together{outline:4px double #9776c5;outline-offset:-4px}.board-frame.earned-frame-night,.prize-preview.earned-frame-night{outline:4px solid #658ac7;outline-offset:-4px}
.board-frame.earned-frame-daily,.prize-preview.earned-frame-daily{outline:4px double #c98588;outline-offset:-4px}
.mastery-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0}.mastery-list>div{display:grid;grid-template-columns:1fr auto;align-items:center;gap:9px;padding:15px;border:1px solid #aa96bc55;border-radius:13px}
.mastery-list small{grid-column:1/-1;line-height:1.5}.mastery-medal{font-size:.76rem;border:1px solid #b1a0bd;border-radius:50px;padding:6px 9px;white-space:nowrap}.mastery-medal.level-1{color:#efc3a6;border-color:#bf8d63}.mastery-medal.level-2{color:#e5e7f0;border-color:#aeb9ca}.mastery-medal.level-3{color:#f3d480;border-color:#e5bd58}
.round-formats{border:1px solid #b9a8d566;border-radius:20px;padding:20px;margin:8px 0 18px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.round-formats legend{font-weight:800;color:#f1dcae;padding:0 8px}.round-formats small{grid-column:1/-1;line-height:1.6}
.format-choice{font:inherit;text-align:left;color:#eee5f5;background:#211b36;border:1px solid #9d88b377;border-radius:13px;padding:16px;display:flex;flex-direction:column;gap:9px;min-height:100px}
.format-choice.selected{border-color:#70d6b7;background:#274039}.format-choice span{font-size:.85rem;line-height:1.5}
.table-mission.surface{padding:16px;margin-bottom:14px}.table-mission .tag{font-size:.61rem;letter-spacing:.05em;padding:6px 8px}.table-mission h3{font-size:1.05rem;margin:10px 0}.table-mission p,.table-mission small{font-size:.79rem;line-height:1.5}.table-mission small{display:block;margin-top:8px}.table-mission progress{width:100%;height:9px;accent-color:#77d9be}
.round-moment,.live-finale{margin:18px 0;position:relative;overflow:hidden}.round-moment h2,.live-finale h2{font-size:clamp(1.4rem,3vw,2.2rem);margin:16px 0;line-height:1.2}.round-moment p,.live-finale p{line-height:1.6;margin-bottom:18px}.live-finale .table-mission{max-width:600px}.playbook-shortcut{padding-top:18px}
.earned-celebration-starlight{border-color:#e9cb77;box-shadow:inset 0 0 42px #e8ce6625}.earned-celebration-starlight:after{content:'✦  ·  ✧  ·  ✦';position:absolute;top:12px;right:18px;color:#f2dda0;font-size:1.5rem;pointer-events:none;animation:earned-glow 1.4s ease-in-out 3}
@keyframes earned-glow{50%{opacity:.35;transform:translateY(5px)}}
@media(max-width:700px){.earned-grid{grid-template-columns:1fr 1fr}.mastery-list{grid-template-columns:1fr}.round-formats{grid-template-columns:1fr}.format-choice{min-height:75px}.playbook-page .page-heading{margin-bottom:20px}.mission-row{gap:10px}.mission-row .button{padding:9px;min-height:44px}.playbook-page .surface{padding:19px}}
@media(max-width:380px){.earned-grid{grid-template-columns:1fr}.mastery-list>div{grid-template-columns:1fr}.mastery-medal{justify-self:start}.playbook-doors button{flex:1}}
@media(prefers-reduced-motion:reduce){.earned-celebration-starlight:after{animation:none}}
