:root{--bg:#0e0819;--panel:#1b102d;--panel-alt:#28163e;--input:#140b22;--line:#47305e;--text:#fff7ff;--muted:#c7b5dc;--mint:#dfb4ff;--accent:#9454ff;--coral:#ff75b9;--blue:#b6a9ff;--haven-pink:#ff58b5;--haven-gold:#ffd17a;--haven-violet:#8646f8}
body{background:radial-gradient(ellipse at 84% 6%,#6d23bf35,transparent 40%),radial-gradient(ellipse at 14% 32%,#d5357f19,transparent 40%),var(--bg)}
.topbar{background:#140b21ed}.button:not(.secondary):not(.ghost){background:linear-gradient(115deg,#843ffa,#b03cee);color:white;border-color:#a86af8;box-shadow:0 5px 24px #812afb28}.button{transition:transform .2s,box-shadow .2s}.button:hover{transform:translateY(-3px);box-shadow:0 8px 26px #853ef83b}.made-by{color:var(--haven-pink)}
.haven-announcement{display:flex;align-items:center;gap:14px;border:1px solid #ad64fc70;background:linear-gradient(105deg,#7530c62b,#e13e8524);padding:13px 18px;border-radius:14px;margin:4px 0 18px}.haven-announcement p{margin:0;flex:1;font-size:13px;color:var(--text)}.haven-announcement a{white-space:nowrap;font-size:12px;font-weight:700;color:var(--mint)}.haven-tag{display:inline-block;border-radius:6px;background:var(--haven-gold);color:#311530;padding:5px 8px;letter-spacing:.11em;font-size:10px;font-weight:900;white-space:nowrap}
.haven-hero{display:grid;grid-template-columns:1.15fr 1fr;min-height:495px;gap:10px;align-items:center;position:relative;padding:22px 16px 28px 8px}.haven-copy{position:relative;z-index:2}.haven-kicker{font-size:11px;font-weight:800;letter-spacing:.2em;color:var(--mint)}.haven-kicker span{color:var(--haven-gold);padding:0 9px}.haven-copy h1{font-size:clamp(38px,4.2vw,66px);line-height:1.1;letter-spacing:-.055em;margin:22px 0}.haven-copy h1 em{font-style:normal;background:linear-gradient(110deg,#edb6ff 0%,#ff6abc 57%,#ffd685 100%);background-clip:text;-webkit-text-fill-color:transparent}.haven-copy p{font-size:16px;line-height:1.8;max-width:480px;color:var(--muted)}.haven-smallprint{display:flex;gap:18px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin-top:23px}
.haven-scene{position:relative;height:450px;isolation:isolate}.haven-moon{position:absolute;inset:30px 0 20px 20px;border-radius:50%;background:radial-gradient(circle at 38% 32%,#9f60fb,#7023cf 45%,#c33889 85%);box-shadow:0 0 85px #904bfb36,inset -25px -20px 55px #381b66;border:1px solid #b88df977}.haven-moon:after{content:'';position:absolute;inset:-17px;border:1px dashed #c986ef60;border-radius:50%;transform:rotate(-18deg)}.haven-main-pokemon{position:absolute;width:88%;height:83%;top:3%;left:3%;filter:drop-shadow(0 22px 20px #240c4670);animation:haven-bob 6s ease-in-out infinite}.haven-main-pokemon img{width:100%;height:100%;object-fit:contain}.haven-orbit-friend{position:absolute;right:-8px;top:220px;width:124px;height:124px;background:#fff0d9;border-radius:28px;transform:rotate(12deg);padding:5px;box-shadow:0 10px 25px #0a031a55}.haven-orbit-friend img{width:100%;height:100%;object-fit:contain;transform:rotate(-12deg)}.haven-sticker{position:absolute;font-size:13px;font-weight:900;line-height:1.3;background:var(--haven-gold);color:#3b164e;z-index:4;padding:13px 18px;border-radius:8px;box-shadow:0 6px 0 #4c2666;transform:rotate(-9deg)}.sticker-top{right:-5px;top:24px}.haven-spark{position:absolute;z-index:2;color:var(--haven-gold);animation:haven-twinkle 4s ease-in-out infinite;pointer-events:none}.spark-a{top:105px;left:9px;font-size:45px}.spark-b{top:72px;right:97px;font-size:27px;animation-delay:1s}.spark-c{bottom:88px;right:37px;font-size:33px;animation-delay:2s}.haven-preview-label{position:absolute;bottom:5px;left:25px;z-index:3;width:76%;background:#201032ed;border:1px solid #aa79df75;border-radius:17px;padding:15px 20px;transform:rotate(-3deg);box-shadow:0 15px 40px #0a021a5e}.haven-preview-label>small{font-size:9px;letter-spacing:.17em;color:var(--muted)}.haven-preview-label>strong{display:block;font-size:24px;margin:4px 0}.haven-preview-label>strong span{font-size:12px;font-weight:500;color:var(--muted)}.haven-preview-label .preview-picks{position:absolute;right:12px;top:15px;gap:5px}.haven-preview-label .preview-pick{width:40px;height:40px;padding:3px;background:#341b50}.haven-preview-label .preview-pick.selected{border-color:var(--haven-gold);background:#ffd17a21}
.haven-numbers{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:24px 0;margin-top:12px;gap:20px}.haven-numbers a{color:var(--text);text-decoration:none;padding-left:18px;border-left:2px solid var(--haven-pink)}.haven-numbers a:first-child{border-color:var(--haven-gold)}.haven-numbers strong{font-size:32px;letter-spacing:-.04em;display:block}.haven-numbers span{display:block;color:var(--muted);font-size:11px;margin-top:6px}.haven-numbers b{color:var(--haven-pink)}.haven-caption{font-size:11px;line-height:1.7;color:var(--muted);margin:12px 0}
.haven-section{padding:56px 0 20px}.haven-section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:24px}.haven-section h2,.haven-games h2,.haven-world-banner h2{font-size:clamp(26px,3vw,39px);line-height:1.18;letter-spacing:-.04em;margin:12px 0}.haven-section h2 em,.haven-world-banner h2 em{font-style:normal;color:var(--haven-pink)}.haven-handnote{font-family:Georgia,serif;font-style:italic;transform:rotate(-7deg);color:var(--haven-gold);font-size:18px;padding-bottom:12px}.haven-presets{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.haven-preset{display:flex;align-items:center;text-align:left;gap:10px;background:linear-gradient(125deg,#442264,#241536);color:var(--text);border:1px solid #765399;border-radius:16px;cursor:pointer;padding:10px;transition:transform .2s,border-color .2s;font:inherit}.haven-preset:nth-child(2){background:linear-gradient(125deg,#513049,#241536)}.haven-preset:hover{transform:translateY(-5px) rotate(-1deg);border-color:var(--haven-gold)}.preset-art{width:75px;height:86px;flex-shrink:0}.preset-art img{width:100%;height:100%;object-fit:contain}.haven-preset small{font-size:9px;letter-spacing:.08em;color:var(--muted);display:block;margin-bottom:6px}.haven-preset strong{font-size:13px;line-height:1.5}.haven-preset b{margin-left:auto;color:var(--haven-gold)}
.haven-world-banner{position:relative;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:center;padding:40px 32px;margin-top:48px;border-radius:25px;border:1px solid #b075e75e;background:linear-gradient(100deg,#25133fed,#351954d9),url('/assets/solace-icon.png') center 46%/cover}.haven-world-banner:after{content:'✦';position:absolute;right:12px;bottom:-30px;color:#ff78be15;font-size:180px;pointer-events:none}.haven-world-banner p{font-size:13px;line-height:1.8;color:#ddc5ee;max-width:420px}.haven-album{position:relative;height:250px;display:flex;align-items:center;padding-left:12px}.album-card{width:32%;height:174px;border:5px solid #f9e9ff;border-bottom-width:12px;background:#e8d4f4;border-radius:3px;box-shadow:0 9px 24px #0d061b66;display:flex;flex-direction:column;align-items:center;text-decoration:none;color:#402157;transform:rotate(-10deg);position:relative;transition:transform .2s}.album-card small{align-self:start;font-size:9px;margin:5px}.album-card img{width:100%;height:113px;object-fit:contain}.album-card strong{font-size:11px}.album-1{transform:rotate(8deg);top:-22px}.album-2{transform:rotate(-3deg)}.album-card:hover{transform:rotate(0deg) translateY(-12px);z-index:2}.album-stamp{position:absolute;right:0;bottom:0;background:var(--haven-gold);color:#442342;border-radius:9px;padding:13px;font-size:11px;font-weight:800;transform:rotate(5deg)}
.haven-offers>p{font-size:14px;color:var(--muted);line-height:1.8;max-width:690px}.haven-offer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:32px}.haven-offer{padding:26px 22px;border:1px solid var(--line);border-radius:20px;background:var(--panel);position:relative;display:flex;flex-direction:column}.haven-offer h3{font-size:25px;margin:12px 0}.haven-price{font-size:42px;font-weight:800;letter-spacing:-.055em}.haven-price small{font-size:12px;font-weight:500;letter-spacing:0;color:var(--muted);margin-left:6px}.haven-offer p{font-size:12px;line-height:1.7;color:var(--muted);min-height:40px}.haven-offer ul{padding-left:17px;font-size:12px;line-height:1.7;flex:1;margin:15px 0 23px}.haven-offer li{margin-bottom:9px}.offer-featured{border:2px solid var(--haven-pink);background:linear-gradient(150deg,#6b246a50,#291540);box-shadow:0 9px 45px #e3439219}.offer-sticker{position:absolute;top:-16px;left:20px;padding:7px 14px;background:var(--haven-pink);color:#2b1332;border-radius:7px;font-size:11px;font-weight:900;transform:rotate(-3deg)}.haven-offer-note{display:flex;gap:15px;align-items:center;margin-top:18px;border:1px dashed var(--line);padding:15px 20px;border-radius:14px}.haven-offer-note>span{font-size:30px;color:var(--haven-gold)}.haven-offer-note p{font-size:11px;line-height:1.8;color:var(--muted);margin:0}.haven-offer-note strong{color:var(--text)}
.haven-play-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.haven-play{border-radius:20px;position:relative;overflow:hidden;padding:24px 22px;text-decoration:none;color:#fff4ff;transition:transform .25s;border:1px solid #ffffff25;background:#48237c}.haven-play:hover{transform:translateY(-6px)}.play-donut{background:#76224e}.play-team{background:#253b72}.haven-play .eyebrow{color:#edcdff}.haven-play h3{font-size:23px;letter-spacing:-.03em;line-height:1.2;margin:14px 0}.haven-play p{font-size:12px;line-height:1.7;color:#efddff;min-height:40px}.haven-play>strong{font-size:12px;color:#ffe4b1}.haven-play-art{height:165px;position:relative;display:flex;justify-content:center;align-items:center;margin:6px 0 15px}.haven-play-art img{max-width:75%;height:100%;object-fit:contain;z-index:1}.play-team img{max-width:52%;height:90%}.haven-play-art svg{height:150px;width:180px}.haven-play-art .brand-waveform{position:absolute;width:100%;bottom:0;left:0;opacity:.6}
.haven-games{padding:45px 0}.haven-games>div{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0 15px}.haven-games a{display:flex;gap:10px;align-items:center;color:var(--text);text-decoration:none;padding:15px 18px;border:1px solid var(--line);background:var(--panel);border-radius:12px;font-size:12px}.haven-games a b{color:var(--haven-pink);font-size:21px}.haven-games a i{font-style:normal;color:var(--muted)}.haven-games>small{color:var(--muted);font-size:11px;line-height:1.8;display:block;max-width:760px}.haven-finale{position:relative;overflow:hidden;border-radius:24px;padding:45px 35px;background:linear-gradient(125deg,#7332cb,#c72f89);margin:35px 0;color:white}.haven-finale .eyebrow{color:#eed1ff}.haven-finale h2{font-size:44px;letter-spacing:-.04em;margin:14px 0 24px}.haven-finale>span:last-child{position:absolute;font-size:190px;right:32px;top:0;color:#ffd387}.haven-finale .button{background:#ffe3a6!important;color:#3d1952!important;border-color:#ffe3a6!important}.seo-intro{padding:35px 8px}.seo-intro h1{font-size:40px;max-width:720px}.seo-intro p{max-width:740px;line-height:1.8;color:var(--muted)}.seo-intro li{line-height:1.9}.seo-intro nav{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
body.light{--bg:#faf3ff;--panel:#fff;--panel-alt:#f0e4fb;--input:#fff;--line:#d3bde7;--text:#29143f;--muted:#685078;--mint:#7934b6;--accent:#7838d0;--coral:#b52071;--haven-pink:#b71d78;--haven-gold:#ffcd6a}body.light .topbar{background:#fff8ffed}body.light .haven-copy h1 em{background-image:linear-gradient(110deg,#7524c9,#c12078 65%,#a4580d)}body.light .haven-preview-label{background:#fff8ffef;color:#2f1847}body.light .haven-preview-label .preview-pick{background:#ead5ff}body.light .haven-preset{background:linear-gradient(120deg,#eed8ff,#fff)}body.light .haven-preset:nth-child(2){background:linear-gradient(120deg,#ffe0f0,#fff)}body.light .haven-handnote{color:#8b4c00}body.light .offer-featured{background:linear-gradient(140deg,#ffe0f1,#f5e8ff)}body.light .offer-sticker{color:white}body.light .haven-world-banner h2{color:white}body.light .haven-world-banner h2 em{color:#ff9acf}body.light .haven-world-banner .secondary{color:#f7e4ff;border-color:#ad86cc}body.light .haven-spark{color:#f49e32}body.light .haven-world-banner .eyebrow{color:#f6d2ff}body.light .haven-tag{color:#40224f}body.light .haven-finale .eyebrow{color:#eed1ff}
@keyframes haven-bob{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-13px) rotate(2deg)}}@keyframes haven-twinkle{0%,100%{opacity:.65;transform:scale(.9)}50%{opacity:1;transform:scale(1.15)}}
@media(max-width:1100px){.haven-copy h1{font-size:47px}.haven-preview-label{width:88%;left:0}.haven-preview-label>strong{font-size:19px}.haven-scene{height:395px}.haven-moon{inset:30px 0 40px}.haven-main-pokemon{height:78%}.haven-orbit-friend{width:92px;height:92px;right:-5px;top:218px}.haven-price{font-size:34px}.haven-offer{padding:24px 16px}.haven-preset{gap:4px}.preset-art{width:53px;height:74px}.haven-preset strong{font-size:12px}}
@media(max-width:750px){.haven-announcement{flex-wrap:wrap;gap:9px;padding:12px}.haven-announcement p{flex-basis:65%;font-size:11px}.haven-announcement a{margin-left:auto}.haven-hero{grid-template-columns:1fr;padding:15px 0;gap:0}.haven-copy h1{font-size:clamp(36px,10vw,52px);margin:17px 0}.haven-copy p{font-size:14px}.haven-smallprint{gap:10px;margin-top:17px}.haven-scene{height:360px;width:min(100%,420px);margin:10px auto 0}.haven-moon{inset:24px 30px 25px}.haven-main-pokemon{height:84%;width:90%;left:0}.sticker-top{right:8px;top:34px;font-size:11px;padding:10px}.haven-preview-label{width:82%;left:7%;bottom:0}.haven-orbit-friend{right:7px;top:192px}.haven-numbers{grid-template-columns:1fr 1fr;gap:22px 12px;padding:22px 0}.haven-numbers strong{font-size:27px}.haven-numbers a{padding-left:11px}.haven-numbers span{font-size:10px}.haven-section{padding-top:38px}.haven-section-head{align-items:start;flex-direction:column;gap:8px;margin-bottom:18px}.haven-handnote{font-size:15px;padding-bottom:0;align-self:end}.haven-presets{grid-template-columns:1fr;gap:9px}.haven-preset{padding:7px 14px;gap:12px}.preset-art{width:66px;height:66px}.haven-preset strong{font-size:14px}.haven-world-banner{grid-template-columns:1fr;padding:28px 20px;margin-top:30px;gap:0}.haven-album{height:230px;margin-top:12px}.haven-offer-grid{grid-template-columns:1fr;gap:26px}.haven-offer{padding:25px}.haven-price{font-size:42px}.haven-offer p{min-height:0}.haven-play-grid{grid-template-columns:1fr}.haven-play{min-height:230px;padding-right:42%}.haven-play-art{position:absolute;right:-10px;top:45px;width:46%;height:155px}.haven-play h3{font-size:24px}.haven-play p{min-height:0}.haven-games{padding:30px 0}.haven-games a{width:100%;padding:12px 15px}.haven-games a i{margin-left:auto}.haven-finale{padding:32px 22px}.haven-finale h2{font-size:35px}.haven-finale>span:last-child{font-size:95px;right:10px;top:70px;opacity:.4}.seo-intro h1{font-size:32px}}
@media(prefers-reduced-motion:reduce){.haven-main-pokemon,.haven-spark{animation:none}.button,.haven-preset,.album-card,.haven-play{transition:none}}
body.reduce-motion .haven-main-pokemon,body.reduce-motion .haven-spark{animation:none}body.high-contrast{--muted:var(--text)}
.button:not(.secondary):not(.ghost):not(.danger):not(.coral){background:linear-gradient(115deg,#7f30f3,#bf31dd);color:white}.haven-world-banner .button:not(.secondary){background:#a65aff}.haven-main-pokemon img{aspect-ratio:1}.haven-copy .hero-actions .button{font-size:13px}
body.light #brand-navigation a{color:var(--muted)}body.light #brand-navigation a.active{color:var(--text);background:#e8d5fa}.haven-scene{overflow:clip}@media(max-width:750px){.topbar{gap:5px}.topbar #account-button{max-width:124px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.haven-main-pokemon{animation:haven-bob 6s ease-in-out infinite}.haven-play{overflow:hidden}}
.haven-scene{overflow-clip-margin:26px}
@media(max-width:750px){.haven-scene{overflow-clip-margin:0px}.haven-preview-label{bottom:16px}.haven-orbit-friend{right:18px}.sticker-top{right:20px}}
/* The tool pages share Haven's colour system while keeping their own examples. */
.showcase-caption{font-size:.78rem!important;line-height:1.45!important;max-width:27rem;margin:.55rem 0!important;color:var(--muted)}
.haven-preview-label{max-width:calc(100% - 2rem)}
.preview-pause{border:1px solid var(--line);background:var(--panel);color:var(--text);width:36px;height:36px;border-radius:50%;font-size:1rem;cursor:pointer}
.haven-main-pokemon img{animation:solace-arrive .65s ease both}
@keyframes solace-arrive{from{opacity:0;transform:translateY(16px) rotate(-5deg) scale(.94)}to{opacity:1;transform:translateY(0) rotate(0) scale(1)}}
.story-category{--story:#b581ff;--story-soft:#b581ff18}
.story-group-1{--story:#ff8fd0;--story-soft:#ff8fd018}.story-group-2{--story:#ffc56d;--story-soft:#ffc56d18}.story-group-3{--story:#72e8d4;--story-soft:#72e8d418}.story-group-4{--story:#8dbbff;--story-soft:#8dbbff18}
.tool-directory{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.15rem}
.story-tile{display:flex;flex-direction:column;padding:0 1.3rem 1.3rem;overflow:hidden;min-height:330px;border:1px solid var(--line);background:var(--panel);border-radius:24px;position:relative;transition:transform .25s,border-color .25s,box-shadow .25s}
.story-tile:hover{transform:translateY(-6px) rotate(-.3deg);border-color:var(--story);box-shadow:0 15px 35px #11091c33}
.story-art{position:relative;background:radial-gradient(ellipse at 25% 70%,var(--story-soft),transparent 70%),linear-gradient(120deg,var(--story-soft),transparent);height:140px;margin:0 -1.3rem 1rem;overflow:hidden}
.story-art>span{position:absolute;right:1rem;top:1rem;background:var(--story);color:#291638;border-radius:14px;padding:.4rem .6rem;font-size:1.3rem;transform:rotate(8deg)}
.feature-mini-demo{position:relative;width:100%;height:100%;min-height:80px}
.feature-mini-demo img{height:135px;width:135px;object-fit:contain;position:absolute;left:10px;bottom:0;filter:drop-shadow(0 8px 12px #34104033);transition:transform .4s}
.feature-mini-demo>div{position:absolute;left:52%;right:15%;top:44%;display:grid;gap:9px;transform:rotate(-8deg)}
.feature-mini-demo i{height:8px;background:var(--story,#b581ff);opacity:.45;border-radius:6px;width:100%}.feature-mini-demo i:nth-child(2){width:65%;opacity:.7}.feature-mini-demo i:nth-child(3){width:83%;opacity:.3}
.demo-cry>div{height:50px;display:flex;align-items:center;gap:8px;transform:none}.demo-cry i{height:75%;width:10px!important;border-radius:4px}.demo-cry i:nth-child(2){height:100%}.demo-cry i:nth-child(3){height:45%}
.demo-living>div,.demo-shinies>div,.demo-balls>div,.demo-ribbons>div{display:flex;flex-wrap:wrap;gap:5px;transform:rotate(-8deg)}.demo-living i,.demo-shinies i,.demo-balls i,.demo-ribbons i{width:22px!important;height:26px;border-radius:5px;opacity:.7}
.demo-queue i:nth-child(1){background:#65e2ad}.demo-queue i:nth-child(2){background:#ffd578}.demo-queue i:nth-child(3){background:#ff84c2}
.story-tile>small{letter-spacing:.1em;font-size:.62rem;color:var(--story);font-weight:800;margin-bottom:.5rem}
.story-tile h3{margin:0 0 .5rem}.story-tile p{font-size:.9rem;line-height:1.6;margin:0 0 .75rem;color:var(--muted)}
.story-example{font-size:.75rem;background:var(--story-soft);border-left:2px solid var(--story);padding:.6rem .7rem;border-radius:0 9px 9px 0;line-height:1.5;margin-top:auto}
.story-tile .tool-tile-arrow{position:static;margin-top:1rem;font-size:.85rem;color:var(--text);font-weight:700}
.feature-prologue{--story:#bb83ff;display:flex;gap:1.4rem;align-items:center;position:relative;margin:0 0 2rem;padding:1.25rem 1.5rem;border:1px solid var(--line);border-radius:24px;background:radial-gradient(ellipse at 5% 10%,#9d4fff28,transparent 65%),var(--panel)}
.feature-prologue h2{font-size:1.25rem;line-height:1.4;margin:.3rem 0}.feature-prologue p{font-size:.8rem;color:var(--muted);margin:.3rem 0}.feature-prologue small{font-size:.62rem;letter-spacing:.1em;font-weight:800;color:var(--accent)}
.feature-prologue>div:nth-child(2){flex:1}.feature-prologue-art{width:90px;height:90px;position:relative;flex-shrink:0;border-radius:22px;background:#b57cff1a}.feature-prologue-art img{width:85px;height:85px;left:0}.feature-prologue-art .feature-mini-demo>div{display:none}.feature-prologue-art>span{position:absolute;right:-5px;bottom:0;background:var(--accent);color:#231133;border-radius:10px;padding:2px 8px}
.feature-prologue .button{white-space:nowrap}
.haven-guide{text-align:center;padding:1rem .8rem;max-width:540px}.haven-guide h2{font-size:1.8rem;margin:.8rem 0}.haven-guide p{line-height:1.9;margin:1rem auto 1.5rem;max-width:440px}.haven-guide>small{color:var(--muted);font-size:.75rem}.guide-demo{height:145px;width:240px;margin:1.2rem auto;--story:#d197ff;background:radial-gradient(ellipse,#b86fff25,transparent 65%)}.guide-demo img{height:145px;width:145px}.guide-progress{display:flex;justify-content:center;gap:7px;margin:1.4rem 0}.guide-progress i{width:32px;height:5px;border-radius:8px;background:var(--line)}.guide-progress i.active{background:var(--accent)}.haven-guide .toolbar{justify-content:center;margin-bottom:1rem}.guide-target{outline:2px solid var(--accent);outline-offset:8px;border-radius:16px}
.dex-qol{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin:0 0 1rem}.dex-qol label{min-width:230px}.dex-qol>span{color:var(--muted);font-size:.72rem;flex:1}.dex-origin-badges{display:flex;flex-wrap:wrap;gap:5px;margin-top:.6rem}.dex-origin-badges span{font-size:.62rem;border-radius:8px;padding:4px 6px;line-height:1.3}.origin-lock{background:#9a72ff24;color:#ceb0ff}.origin-event{background:#ffc56d1f;color:#edc379}.light .origin-lock{color:#6441a9}.light .origin-event{color:#8c5819}.dex-origin-details{padding:1rem 1.2rem;margin:1.2rem 0;background:#ac78ff12;border-radius:16px;border:1px solid var(--line)}.dex-origin-details p{font-size:.85rem;line-height:1.65}.expired-event{border-left:3px solid #ffcb76;padding:.5rem 1rem;background:#ffcb760c}.expired-event small{display:block;margin:.5rem 0;color:var(--muted)}
.lab-section-nav{display:flex;gap:.75rem;flex-wrap:wrap;margin:1rem 0}.lab-navigation{margin:1rem 0}.butter-picker{max-width:320px;margin-bottom:1rem}.donut-nutrition{display:flex;gap:2rem;margin:1rem 0}.donut-nutrition span{display:grid;font-size:.7rem;color:var(--muted)}.donut-nutrition b{font-size:1.7rem;color:var(--text)}.donut-preview small{display:block;line-height:1.6;color:var(--muted);max-width:30rem;font-size:.72rem}.donut-source-note{margin:2rem 0;display:flex;gap:1rem;flex-wrap:wrap;font-size:.75rem;align-items:center}.donut-source-note small{color:var(--muted)}
.mew-hiding-place{position:relative}.rare-mew{position:absolute;left:var(--mew-left,85%);bottom:12px;width:44px;height:44px;padding:0;background:transparent;border:0;cursor:pointer;z-index:3;opacity:.7;transition:opacity .2s,transform .2s}.rare-mew img{width:42px;height:42px;image-rendering:pixelated;object-fit:contain}.rare-mew:hover,.rare-mew:focus-visible{opacity:1;transform:translateY(-3px);outline:2px dashed var(--accent);outline-offset:3px;border-radius:50%}.mew-present{text-align:center;padding:1rem;max-width:500px}.mew-present>img{width:180px;display:block;margin:auto}.mew-present h2{font-size:1.8rem}.mew-present p{line-height:1.7}.mew-present ul{text-align:left;background:#b47cff12;padding:1rem 1.5rem 1rem 2.5rem;border-radius:16px;line-height:1.9}.mew-present>.eyebrow{display:block}.haven-week-banner{display:flex;gap:1.2rem;padding:1.4rem;background:linear-gradient(120deg,#6dbde91b,#ae76ff1b,#ff86c51b);border:1px solid #a67afc55;border-radius:22px;margin:1.5rem 0}.haven-week-banner>span{font-size:2rem;color:var(--accent)}.haven-week-banner h2{margin:0;font-size:1.25rem}.haven-week-banner p,.haven-week-banner small{line-height:1.7;color:var(--muted)}
@media(max-width:1100px){.tool-directory{grid-template-columns:repeat(2,minmax(0,1fr))}.feature-prologue{flex-wrap:wrap}.feature-prologue .button{margin-left:auto}}
@media(max-width:600px){.tool-directory{grid-template-columns:minmax(0,1fr)}.story-tile{min-height:300px}.feature-prologue{padding:1rem;gap:.8rem}.feature-prologue-art{width:65px;height:65px}.feature-prologue-art img{width:65px;height:65px}.feature-prologue h2{font-size:1rem}.feature-prologue small{font-size:.55rem}.feature-prologue .button{width:100%;margin:0}.showcase-caption{font-size:.66rem!important}.haven-preview-label{padding:.8rem!important}.dex-qol>span{flex-basis:100%}.haven-guide{padding:.5rem}.haven-guide h2{font-size:1.5rem}.haven-guide p{font-size:.9rem}.haven-guide .toolbar{flex-wrap:wrap}.rare-mew{bottom:6px}.donut-nutrition{gap:1.5rem}.haven-week-banner{padding:1rem}.guide-target{outline-offset:3px}}
.reduce-motion .haven-main-pokemon img{animation:none}.reduce-motion .story-tile,.reduce-motion .rare-mew{transition:none}
@media(prefers-reduced-motion:reduce){.haven-main-pokemon img{animation:none}.story-tile,.rare-mew{transition:none}}

/* Keep category labels and examples readable when the system switches to light. */
body.light .directory-filters button.active{background:#e8d5ff;border-color:#a773dc;color:#512385;font-weight:700}
body.light .story-category{--story:#6e2faf;--story-soft:#9654db12}
body.light .story-group-1{--story:#ac216c;--story-soft:#d5499612}
body.light .story-group-2{--story:#8b570e;--story-soft:#c5922015}
body.light .story-group-3{--story:#176c5e;--story-soft:#26998612}
body.light .story-group-4{--story:#295eaa;--story-soft:#477fc912}
body.light .feature-prologue-art>span{color:white}
