/* Self-hosted web fonts (no Google requests). Fraunces, Nunito Sans, Fredoka, DM Serif Display: SIL Open Font License. */
@font-face{font-family:'Fraunces';src:url(/fonts/fraunces-latin-standard-normal.woff2) format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:'Fraunces';src:url(/fonts/fraunces-latin-standard-italic.woff2) format('woff2');font-weight:100 900;font-style:italic;font-display:swap}
@font-face{font-family:'Nunito Sans';src:url(/fonts/nunito-sans-latin-wght-normal.woff2) format('woff2');font-weight:200 1000;font-style:normal;font-display:swap}
@font-face{font-family:'Nunito Sans';src:url(/fonts/nunito-sans-latin-wght-italic.woff2) format('woff2');font-weight:200 1000;font-style:italic;font-display:swap}
@font-face{font-family:'Fredoka';src:url(/fonts/fredoka-latin-wght-normal.woff2) format('woff2');font-weight:300 700;font-style:normal;font-display:swap}
@font-face{font-family:'DM Serif Display';src:url(/fonts/dm-serif-display-latin-400-normal.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'DM Serif Display';src:url(/fonts/dm-serif-display-latin-400-italic.woff2) format('woff2');font-weight:400;font-style:italic;font-display:swap}

@font-face{font-family:Casale;src:url(/casale.ttf) format('truetype');font-display:swap}
@font-face{font-family:Casale;src:url(/casale-italic.ttf) format('truetype');font-style:italic;font-display:swap}
@font-face{font-family:Praise;src:url(/praise.ttf) format('truetype');font-display:swap}
body{margin:0;background:#1C1720;color:#2A2030;font-family:'Nunito Sans',system-ui,sans-serif}
a{color:#5B2D82}a:hover{color:#3E1D5B}
.cta:focus-visible,.back:focus-visible{outline:3px solid #F2C14E;outline-offset:3px}
.stage .doorimg{transition:transform 1.1s cubic-bezier(.6,.05,.3,1),filter 1.1s,opacity 1.1s}
.stage.quick .doorimg{transition-duration:.25s}
.stage.entering .doorimg{transform:scale(2.4);filter:brightness(2.4);opacity:0}
.smoke .p{position:absolute;left:calc(50% - 80px);top:calc(50% - 80px);width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,var(--smoke) 0%,transparent 68%);filter:blur(8px);opacity:0}
.smoke .s{position:absolute;left:calc(50% - 4px);top:calc(50% - 4px);width:8px;height:8px;border-radius:50%;background:#FFE7A8;box-shadow:0 0 10px 3px rgba(255,214,120,.9);opacity:0}
.puff-a .p{animation:puffA 1.4s ease-out var(--d) forwards}
.puff-b .p{animation:puffB 1.4s ease-out var(--d) forwards}
.puff-a .s{animation:sparkA 1.1s ease-out var(--d) forwards}
.puff-b .s{animation:sparkB 1.1s ease-out var(--d) forwards}
@keyframes puffA{0%{opacity:0;transform:translate(0,0) scale(.3)}25%{opacity:1}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(var(--sc))}}
@keyframes puffB{0%{opacity:0;transform:translate(0,0) scale(.3)}25%{opacity:1}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(var(--sc))}}
@keyframes sparkA{0%{opacity:0;transform:translate(0,0)}20%{opacity:1}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.4)}}
@keyframes sparkB{0%{opacity:0;transform:translate(0,0)}20%{opacity:1}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.4)}}
/* the painted shop */
.scene{position:relative;background:#1C1720;overflow:hidden}
.stagebox{position:relative;width:100%;aspect-ratio:768/1344;animation:drift 26s ease-in-out infinite alternate;transform-origin:40% 80%}
.scene-bg{position:absolute;inset:0;background:url(/img/store-tall.jpg) center/100% 100% no-repeat}
@keyframes drift{from{transform:scale(1)}to{transform:scale(1.025)}}
.glow{position:absolute;width:22%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(255,206,120,.55) 0%,rgba(255,190,100,.18) 35%,transparent 68%);mix-blend-mode:screen;animation:flicker 3.2s infinite;pointer-events:none}
.glow.tall{width:60%}
.glow.wide{display:none}
@keyframes flicker{0%,100%{opacity:.9}18%{opacity:.75}22%{opacity:1}47%{opacity:.82}52%{opacity:.95}78%{opacity:.8}}
.mote{position:absolute;width:6px;height:6px;border-radius:50%;background:#FFE3A0;box-shadow:0 0 8px 2px rgba(255,210,120,.8);opacity:0;animation:mote var(--t) linear var(--d) infinite;pointer-events:none}
@keyframes mote{0%{opacity:0;transform:translate(0,0)}15%{opacity:.9}85%{opacity:.7}100%{opacity:0;transform:translate(var(--dx),-140px)}}
.petal{position:absolute;top:-4%;width:12px;height:8px;border-radius:70% 0 70% 0;background:#8E5CC2;opacity:0;animation:petal var(--t) linear var(--d) infinite;pointer-events:none}
@keyframes petal{0%{opacity:0;transform:translate(0,0) rotate(0)}10%{opacity:.9}90%{opacity:.8}100%{opacity:0;transform:translate(var(--dx),78vh) rotate(540deg)}}
.hs{position:absolute;transform:translate(-50%,-50%);min-width:30px;min-height:44px;padding:0;border:0;border-radius:3px;background:transparent;cursor:pointer;z-index:2}
.hs::before{content:'';position:absolute;inset:0;border-radius:3px;animation:breathe 3.2s ease-in-out var(--td) infinite}
.hs:hover::before,.hs:focus-visible::before,.hs.on::before{animation:none}
@keyframes breathe{0%,100%{background:rgba(255,228,160,.1);box-shadow:0 0 14px 5px rgba(255,206,110,.35)}50%{background:rgba(255,228,160,.28);box-shadow:0 0 30px 12px rgba(255,206,110,.6)}}
.hs:hover,.hs:focus-visible,.hs.on{z-index:4;outline:none}
.hs:hover::before,.hs:focus-visible::before{box-shadow:0 0 0 2px rgba(255,226,150,.95),0 0 22px 6px rgba(255,206,110,.6)}
.hs.on::before{box-shadow:0 0 0 2px #FFE29A,0 0 28px 9px rgba(255,206,110,.75);background:rgba(255,230,170,.18)}
.twinkle{position:absolute;left:50%;top:-8px;width:16px;height:16px;background:#FFF4CC;clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);filter:drop-shadow(0 0 6px #FFD27A);transform:translateX(-50%) scale(0);animation:twinkle var(--tw) ease-in-out var(--td) infinite;pointer-events:none}
.twinkle.b{top:auto;bottom:-6px;left:20%;width:11px;height:11px;animation-delay:calc(var(--td) - 1.3s)}
.twinkle.c{top:42%;left:auto;right:-14px;width:10px;height:10px;animation-delay:calc(var(--td) - 2.4s)}
.twinkle.d{top:68%;left:-10px;width:12px;height:12px;animation-delay:calc(var(--td) - .7s)}
.twinkle.e{top:18%;left:auto;right:-8px;width:8px;height:8px;animation-delay:calc(var(--td) - 1.9s)}
@keyframes twinkle{0%,55%,100%{transform:translateX(-50%) scale(0) rotate(0)}74%{transform:translateX(-50%) scale(1.15) rotate(45deg)}86%{transform:translateX(-50%) scale(.5) rotate(90deg)}}
.tip{position:absolute;left:50%;bottom:calc(100% + 16px);transform:translate(-50%,6px);display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 14px;background:#F7F1E6;color:#2A1838;border:1px solid #C9A65A;border-radius:10px;box-shadow:0 10px 24px rgba(0,0,0,.4);white-space:nowrap;font-size:13px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
.tip strong{font-family:'Fraunces',Georgia,serif;font-size:17px;font-weight:600}
.tip-r .tip{left:auto;right:0;transform:translate(0,6px)}
.tip-l .tip{left:0;transform:translate(0,6px)}
.hs:hover .tip,.hs:focus-visible .tip,.hs.on .tip{opacity:1;transform:translate(-50%,0)}
.tip-r:hover .tip,.tip-r:focus-visible .tip,.tip-r.on .tip,.tip-l:hover .tip,.tip-l:focus-visible .tip,.tip-l.on .tip{transform:translate(0,0)}
.wide-only{display:none}
.door-slot{position:absolute;left:35.5%;bottom:15%;height:44%;aspect-ratio:600/1050;transform:translateX(-50%);z-index:3}
.door-cta{position:absolute;left:35.5%;bottom:2.5%;transform:translateX(-50%);z-index:3}
.card{position:relative;margin:0 auto;max-width:520px;padding:22px 20px 28px;display:flex;flex-direction:column;gap:8px;text-align:center;color:#F7F1E6}
.card h1{color:#F7F1E6!important}.card p{color:#D8CCE3!important}
@media (min-width:1100px){
.scene{width:min(100%,max(1100px,calc((100vh - 60px) * 1.75)));margin:0 auto}
.stagebox{aspect-ratio:1344/768}
.scene-bg{background-image:url(/img/store-wide.jpg)}
.glow.tall,.tall-only{display:none}
.glow.wide{display:block}
.wide-only{display:block}
.stagebox{transform-origin:44.5% 80%}
.door-slot{left:44.5%;bottom:19%;height:54%}
.door-cta{left:44.5%;bottom:4%}
.card{position:absolute;left:44.5%;top:3%;width:25%;max-width:none;transform:translateX(-50%);padding:14px 18px;background:rgba(247,241,230,.93);border:1px solid #C9A65A;border-radius:14px;box-shadow:0 14px 30px rgba(28,23,32,.35);color:#2A1838;z-index:3}
.card h1{color:#2A1838!important}.card p{color:#4E4255!important}
}
.bcard{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-height:138px;padding:20px 20px 18px 24px;background:#EFE6D8;border:1px solid #D9CBB4;border-left:6px solid var(--edge);border-radius:8px;color:#2A1838;font:inherit;text-align:left;cursor:pointer;transition:transform .2s,box-shadow .2s,background-color .3s}
.bcard:hover{transform:translateY(-3px);box-shadow:0 10px 22px rgba(42,24,56,.15)}
.bcard:focus-visible{outline:3px solid #C9A65A;outline-offset:3px}
.bcard.on{background:#2A1838;border-color:#2A1838;border-left-color:var(--edge);color:#F7F1E6}
.bcard .sub{font-size:14px;color:#5E5262}
.bcard.on .sub{color:#D8CCE3}
.bcard .st{margin-top:auto;font-size:13px;font-weight:700;color:#4E4255;display:flex;align-items:center;gap:6px}
.bcard.on .st{color:#E2C27A}
/* ---------- Pure Intention story (ported from the original site) ---------- */
.pi{background:#070E12;color:#E8E9E3;font:17px/1.85 Arial,sans-serif;overflow-x:clip;animation:worldIn .9s ease}
.pi a{color:inherit;text-decoration:none}
.pi h1,.pi h2{font-family:Casale,Georgia,serif;font-weight:400;letter-spacing:-.025em;text-wrap:balance}
.pi h1{font-size:clamp(62px,10vw,116px);line-height:1.04;margin:15px 0 25px}
.pi h2{font-size:clamp(34px,4.2vw,62px);line-height:1.22;margin:0 0 32px}
.pi h1 em,.pi h2 em{font-style:normal;color:#94DCE0}
.pi p{margin:0 0 25px}
.pi-eyebrow{font:12px/1.6 Arial,sans-serif;letter-spacing:.21em;color:#94DCE0;margin-bottom:24px}
.pi-coda{color:#94DCE0;font:italic 23px/1.65 Georgia,serif;margin-top:42px}
.pi-large{font:clamp(26px,3.2vw,44px)/1.6 Casale,Georgia,serif}
.pi-chapter{position:relative;padding:clamp(80px,10vw,140px) 9%}
.pi-narrow{max-width:840px;margin:0 auto}
.pi-split{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:start}
.pi-split>div{max-width:510px}
.pi-link{display:inline-flex;align-items:center;gap:30px;min-height:44px;border-bottom:1px solid #a4d2d65c;font-size:14px}
.pi-link:hover{color:#94DCE0}
.pi-storm{position:absolute;inset:0;pointer-events:none;opacity:0;mix-blend-mode:screen;background:radial-gradient(ellipse 60% 55% at var(--sx,62%) var(--sy,8%),rgba(214,240,255,.95),rgba(148,200,235,.45) 40%,transparent 75%),linear-gradient(180deg,rgba(170,215,240,.35),transparent 60%);animation:piStorm var(--st,11s) linear var(--sd,0s) infinite}
.pi-storm.b{--sx:22%;--sy:4%;animation-name:piStormB}
@keyframes piStorm{0%,58%,100%{opacity:0}58.6%{opacity:.85}59.4%{opacity:.12}60.4%{opacity:.7}61.4%{opacity:.25}64%{opacity:0}86%{opacity:0}86.5%{opacity:.4}88%{opacity:0}}
@keyframes piStormB{0%,30%,100%{opacity:0}30.5%{opacity:.6}31.3%{opacity:.08}32%{opacity:.45}34.5%{opacity:0}}
@media (prefers-reduced-motion: reduce){.pi-storm{display:none}}
.pi{timeline-scope:--pi-open}
.pi-comps{margin:-8px 0 26px;padding-left:14px;border-left:2px solid #94DCE0;font:italic 16px/1.6 Georgia,serif;color:#b9cfd2}
.pi-comps em{color:#E8E9E3}
.pi-offer{display:flex;align-items:center;gap:22px;margin-top:8px}
.pi-offer-cover{width:96px;height:auto;flex:0 0 auto;transform:rotate(-3deg);box-shadow:10px 16px 30px #000c;border:1px solid #94dce033}
.pi-offer-copy{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.pi-solid{background:#94DCE0;color:#070E12!important;border-color:#94DCE0;font-weight:700}
.pi-solid:hover{background:#B9ECEE}
.pi-float{position:fixed;right:18px;bottom:18px;z-index:40;display:inline-flex;align-items:center;min-height:48px;padding:0 22px;border-radius:999px;background:#94DCE0;color:#070E12!important;font:700 14px Arial,sans-serif;box-shadow:0 10px 26px rgba(0,0,0,.55),0 0 0 1px #070E12}
.pi-float:hover{background:#B9ECEE}
.pi-float:focus-visible{outline:2px solid #E8E9E3;outline-offset:4px}
@supports (animation-timeline: view()){.pi-float{animation:piFloat linear both;animation-timeline:--pi-open;animation-range:exit 40% exit 80%}}
@keyframes piFloat{from{opacity:0;transform:translateY(20px);visibility:hidden}to{opacity:1;transform:none;visibility:visible}}
.pi-back{position:sticky;top:12px;z-index:30;margin:0 0 -60px 16px;min-height:44px;padding:0 18px;display:inline-flex;align-items:center;gap:8px;background:rgba(7,14,18,.72);backdrop-filter:blur(6px);border:1px solid #719fa169;border-radius:999px;color:#E8E9E3;font:600 14px Arial,sans-serif;cursor:pointer}
.pi-back:hover{border-color:#94DCE0;color:#94DCE0}
.pi-back:focus-visible,.pi-link:focus-visible,.pi-button:focus-visible{outline:2px solid #94DCE0;outline-offset:6px}
/* opening */
.pi-opening{position:relative;height:100svh;min-height:680px;overflow:hidden}
.pi-city{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:55% center}
.pi-scrim{position:absolute;inset:0;background:linear-gradient(90deg,#030a11d9,transparent 100%),linear-gradient(0deg,#070E12,transparent 50%)}
.pi-sloane{position:absolute;right:1%;bottom:0;width:43%;height:82%;object-fit:contain;filter:brightness(.62);opacity:.8;-webkit-mask-image:linear-gradient(#000 50%,transparent);mask-image:linear-gradient(#000 50%,transparent)}
.pi-opening-copy{position:relative;z-index:3;margin-left:9%;padding-top:clamp(120px,18vh,200px);max-width:660px}
.pi-hook{font-size:19px;line-height:1.75;max-width:540px}
.pi-scroll-note{position:absolute;left:9%;bottom:30px;font-size:11px;letter-spacing:.2em;color:#c4d0d1;margin:0}
/* instinct */
.pi-instinct{display:grid;grid-template-columns:1fr 1.35fr;align-items:center;gap:7%;min-height:700px;overflow:clip}
.pi-instinct-art{position:relative;width:100%;max-width:480px;aspect-ratio:4/5;justify-self:center}
.pi-instinct-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;-webkit-mask-image:radial-gradient(ellipse 72% 68% at 50% 50%,#000 45%,transparent 100%);mask-image:radial-gradient(ellipse 72% 68% at 50% 50%,#000 45%,transparent 100%)}
.pi-pulse{position:absolute;left:51%;top:60%;width:46%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(148,236,232,.42),rgba(148,220,224,.12) 40%,transparent 70%);mix-blend-mode:screen;animation:piPulse 3.6s ease-in-out infinite;pointer-events:none}
@keyframes piPulse{0%,100%{opacity:.35;transform:translate(-50%,-50%) scale(.92)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.06)}}
.pi-spark{position:absolute;width:4px;height:4px;border-radius:50%;background:#CFFAF8;box-shadow:0 0 8px 2px rgba(148,236,232,.85);opacity:0;animation:piSpark var(--t) ease-out var(--d) infinite;pointer-events:none}
@keyframes piSpark{0%{opacity:0;transform:translate(0,0)}20%{opacity:1}100%{opacity:0;transform:translate(10px,-110px)}}
@media (prefers-reduced-motion: reduce){.pi-pulse,.pi-spark{animation:none}}
.pi-rhythm{margin:28px 0}
.pi-rhythm p{margin:0;font:clamp(24px,2.6vw,36px)/1.6 Casale,Georgia,serif;color:#94DCE0;letter-spacing:.02em}
/* dna */
.pi-dna{background:#0b1920;border-block:1px solid #ceeef01e;overflow:clip}
.pi-dna blockquote{margin:40px 0;font:clamp(26px,3vw,42px)/1.5 Casale,Georgia,serif;color:#94DCE0}
.pi-name{margin:35px 0 0;text-align:left;font:clamp(80px,14vw,170px)/1.1 Casale,Georgia,serif;color:#a0d9de;letter-spacing:-.04em}
/* nero (static layout first) */
.pi-nero-sticky{display:grid;grid-template-columns:1.1fr 1fr;gap:6%;align-items:center;padding:80px 9%}
.pi-nero-after{margin-top:30px}
.pi-nero-after strong{display:block;margin-top:20px;font:400 26px/1.5 Georgia,serif;color:#94DCE0}
.pi-frames{position:relative;width:100%;height:min(70svh,620px);-webkit-mask-image:linear-gradient(transparent,#000 12%,#000 82%,transparent);mask-image:linear-gradient(transparent,#000 12%,#000 82%,transparent)}
.pi-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0}
.pi-frame.last{opacity:1}
.pi-note{position:absolute;left:9%;bottom:24px;margin:0;font-size:12px;letter-spacing:.18em;color:#bdd0d5;display:none}
/* memory / missing */
.pi-memory{border-block:1px solid #d8eeee20}
.pi-memory .pi-narrow{max-width:960px}
.pi-missing{background:#070E12;overflow:hidden;isolation:isolate;padding-bottom:510px}
.pi-hideout{position:absolute;inset:auto 0 0;width:100%;height:100%;object-fit:cover;object-position:center bottom;opacity:.45;z-index:-2}
.pi-missing::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(#070e12 0%,#070e12e8 20%,#070e1280 46%,transparent 65%,#070e1240 90%,#070e12 100%)}
/* max (static layout first) */
.pi-max-sticky{position:relative;overflow:hidden;padding:80px 9%;min-height:640px;background:linear-gradient(90deg,#070e12f5,#070e1288),url(/city.webp) 60% center/cover}
.pi-max-portrait{position:absolute;right:4%;bottom:-10px;width:43%;height:88%;object-fit:contain;object-position:center bottom;filter:brightness(.85);opacity:.65;-webkit-mask-image:linear-gradient(#000 75%,transparent);mask-image:linear-gradient(#000 75%,transparent)}
.pi-max-lit{display:none}
.pi-max-copy{position:relative;z-index:2;width:62%}
.pi-max-copy>div{max-width:620px;margin-bottom:48px}
.pi-max-copy h2{font-size:clamp(38px,4.6vw,66px)}
.pi-max-recog h2{font-size:clamp(75px,10vw,140px)}
/* excerpt */
.pi-hope>h2,.pi-maybe,.pi-context{text-align:center}
.pi-maybe{font:27px Georgia,serif;color:#9caaad}
.pi-context{color:#b1bfc1}
.pi-excerpt{position:relative;max-width:720px;margin:56px auto 0;padding:48px 0 8px;border-top:1px solid #94dce033}
.pi-excerpt::before{content:'';position:absolute;inset:-10% -20%;z-index:-1;background:radial-gradient(ellipse at 50% 45%,rgba(22,65,75,.45),transparent 65%);pointer-events:none}
.pi-hope{isolation:isolate}
.pi-fig{position:relative;height:clamp(380px,46vw,560px);display:flex;justify-content:center;align-items:flex-end}
.pi-fig::before{content:'';position:absolute;left:50%;bottom:6%;width:150%;height:70%;transform:translateX(-50%);background:radial-gradient(ellipse at 50% 60%,rgba(148,220,224,.18),transparent 65%);pointer-events:none}
.pi-fig img{position:relative;height:100%;width:auto;max-width:100%;object-fit:contain;filter:brightness(.82) drop-shadow(0 0 18px rgba(148,220,224,.18));-webkit-mask-image:linear-gradient(#000 82%,transparent);mask-image:linear-gradient(#000 82%,transparent)}
.pi-dialogue{align-self:center;margin:0;font:clamp(22px,2.2vw,30px)/1.6 Casale,Georgia,serif}
.pi-dialogue p{margin-bottom:17px}
.pi-dialogue p:nth-child(even){padding-left:12%;color:#94DCE0}
.pi-dialogue p:nth-child(3){font:17px/1.8 Arial,sans-serif;color:#b1bfc1;margin-block:28px}
/* question / pitch / invitation */
.pi-question{overflow:hidden}
.pi-question>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.13}
.pi-question-copy{position:relative;max-width:840px;margin:0 auto}
.pi-pitch{display:grid;grid-template-columns:1fr 1.2fr;gap:10%;border-top:1px solid #d0f1f126}
.pi-cover-col{position:sticky;top:80px;align-self:start;perspective:1000px;text-align:center;padding-top:40px}
.pi-cover{width:90%;max-width:380px;margin:0 auto 50px;transform:rotateY(-7deg) rotateZ(-1deg);box-shadow:25px 35px 55px #000a}
.pi-cover img{display:block;width:100%;height:auto}
.pi-synopsis p{color:#c6d0d1}
.pi-synopsis h2{font-size:48px}
.pi-invite{text-align:center;background:radial-gradient(ellipse at 50% 100%,#16414b66,transparent 65%);border-top:1px solid #d0f1f126}
.pi-invite h2{max-width:920px;margin:0 auto 40px;font-size:clamp(30px,4vw,58px)}
.pi-button{display:inline-flex;align-items:center;min-height:48px;padding:0 28px;border:1px solid #8fc8ca80;font-size:15px;transition:background .2s}
.pi-button:hover{background:#16424b}
.pi-return{display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap;padding:50px 9%;border-top:1px solid #d0f1f120}
.pi-return>div{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.pi-return img{width:140px;height:auto}
.pi-return button{background:none;border:0;border-bottom:1px solid #a4d2d65c;padding:0;color:#E8E9E3;font:14px Arial,sans-serif;cursor:pointer}
@media (max-width:750px){
.pi-opening{min-height:640px}.pi-opening-copy{margin-left:7%;padding-top:130px;max-width:86%}
.pi-hook{font-size:17px;max-width:350px}.pi-sloane{height:58%;width:65%;right:-8%;opacity:.42}
.pi-chapter{padding:80px 7%}.pi-split{grid-template-columns:1fr;gap:20px}
.pi-instinct{grid-template-columns:1fr;gap:0;min-height:0}.pi-instinct-art{max-width:340px}
.pi-nero-sticky{grid-template-columns:1fr;padding:60px 7% 40px}.pi-frames{height:340px}
.pi-missing{padding-bottom:400px}.pi-offer-cover{width:72px}.pi-float{right:12px;bottom:12px}.pi-hideout{height:580px;object-position:55% bottom}
.pi-max-sticky{padding:60px 7%}.pi-max-copy{width:100%}.pi-max-portrait{right:-7%;width:68%;height:63%;opacity:.2}
.pi-excerpt{grid-template-columns:1fr}.pi-fig{display:none}
.pi-pitch{grid-template-columns:1fr;gap:45px}.pi-cover-col{position:static;padding:0}.pi-cover{max-width:250px}
}
/* ---------- scroll-driven motion (browsers that support it; others get the static layout) ---------- */
@supports (animation-timeline: view()) {
@media (prefers-reduced-motion: no-preference) and (min-height: 651px) {
.pi-opening{view-timeline:--pi-open block}
.pi-city{animation:piCity linear both;animation-timeline:--pi-open;animation-range:exit 0% exit 100%}
.pi-sloane{animation:piSloane linear both;animation-timeline:--pi-open;animation-range:exit 0% exit 100%}
.pi-opening-copy{animation:piFadeUp ease-in both;animation-timeline:--pi-open;animation-range:exit 0% exit 70%}
.pi-rise{animation:piRise ease-out both;animation-timeline:view();animation-range:entry 5% cover 28%}
.pi-instinct-art{animation:piArt ease-out both;animation-timeline:view();animation-range:entry 0% cover 45%}
.pi-name{animation:piName linear both;animation-timeline:view();animation-range:entry 100% contain 88%}
.pi-hideout{animation:piDrift linear both;animation-timeline:view();animation-range:cover 0% cover 100%}
.pi-cover{animation:piCover ease-out both;animation-timeline:view();animation-range:entry 0% cover 50%}
/* Nero: the section is tall, its inner stage sticks, and the frames dissolve as you scroll */
.pi-nero{height:230svh;view-timeline:--pi-nero block}
.pi-nero-sticky{position:sticky;top:0;height:100svh;padding-block:60px}
.pi-nero-copy{position:relative}
.pi-nero-before{min-height:185px;animation:piOut linear both;animation-timeline:--pi-nero;animation-range:contain 74% contain 82%}
.pi-nero-after{position:absolute;left:0;bottom:0;margin:0;animation:piIn ease-out both;animation-timeline:--pi-nero;animation-range:contain 82% contain 94%}
.pi-frames{animation:piGrow ease-out both;animation-timeline:--pi-nero;animation-range:contain 0% contain 100%}
.pi-frame:first-child{opacity:1}
.pi-frame.last{opacity:0}
.pi-frame:nth-child(n+2){animation:piFrame ease-in-out both;animation-timeline:--pi-nero}
.pi-frame:nth-child(2){animation-range:contain 21% contain 34%}
.pi-frame:nth-child(3){animation-range:contain 37% contain 50%}
.pi-frame:nth-child(4){animation-range:contain 52% contain 65%}
.pi-frame:nth-child(5){animation-range:contain 68% contain 81%}
.pi-note{display:block;animation:piOut linear both;animation-timeline:--pi-nero;animation-range:contain 80% contain 92%}
/* Max: three beats over one portrait that slowly comes out of shadow */
.pi-max{height:245svh;view-timeline:--pi-max block}
.pi-max-sticky{position:sticky;top:0;height:100svh;min-height:0;display:flex;align-items:center}
.pi-max-portrait{filter:brightness(.08);opacity:1;animation:piSettle linear both;animation-timeline:--pi-max;animation-range:contain 0% contain 100%}
.pi-max-lit{display:block;filter:brightness(.85);animation:piLit ease-in-out both;animation-timeline:--pi-max;animation-range:contain 32% contain 54%}
.pi-max-copy{height:420px}
.pi-max-copy>div{position:absolute;inset:0;margin:0;display:flex;flex-direction:column;justify-content:center}
.pi-max-unknown{animation:piOut ease-in both;animation-timeline:--pi-max;animation-range:contain 22% contain 32%}
.pi-max-recog{animation:piInOut linear both;animation-timeline:--pi-max;animation-range:contain 32% contain 75%}
.pi-max-truth{animation:piIn ease-out both;animation-timeline:--pi-max;animation-range:contain 76% contain 88%}
.pi-max .pi-note{display:block;animation:piOut linear both;animation-timeline:--pi-max;animation-range:contain 84% contain 94%}
}}
@keyframes piCity{to{transform:scale(1.12) translateY(6%)}}
@keyframes piSloane{to{transform:translateY(-7%)}}
@keyframes piFadeUp{to{opacity:0;transform:translateY(-18%)}}
@keyframes piRise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes piArt{from{opacity:0;transform:translateY(70px) rotate(-3deg)}to{opacity:1;transform:none}}
@keyframes piName{from{opacity:.15;transform:translateX(62%)}10%{opacity:1}75%{transform:translateX(8%)}to{opacity:1;transform:none}}
@keyframes piDrift{from{transform:translateY(4%)}to{transform:translateY(-8%)}}
@keyframes piCover{from{transform:rotateY(-25deg) rotateZ(-4deg)}to{transform:rotateY(-7deg) rotateZ(-1deg)}}
@keyframes piGrow{from{transform:scale(.82)}25%{transform:scale(1)}to{transform:scale(1)}}
@keyframes piFrame{from{opacity:0;transform:scale(1.04)}to{opacity:1;transform:none}}
@keyframes piOut{from{opacity:1;transform:none}to{opacity:0;transform:translateY(-14px)}}
@keyframes piIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes piInOut{0%{opacity:0;transform:translateY(15px)}28%,77%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-15px)}}
@keyframes piSettle{from{transform:scale(1.06)}to{transform:scale(1)}}
@keyframes piLit{from{opacity:0}to{opacity:1}}
/* ---------- Before You Bid ---------- */
.by{--navy:#17223A;--navy2:#0F1828;--red:#C8233A;--paper:#F3F4F7;--ink:#17223A;--gold:#D8B45A;background:var(--paper);color:#2B3345;font:17px/1.7 Arial,Helvetica,sans-serif;animation:worldIn .9s ease}
.by a{text-decoration:none}
.by h1,.by h2,.by h3{font-family:'DM Serif Display',Georgia,serif;font-weight:400;color:var(--ink);margin:0;text-wrap:balance}
.by h2{font-size:clamp(32px,4vw,48px);line-height:1.12;margin-bottom:18px}
.by-wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.by-sec{padding:clamp(64px,8vw,104px) 0}
.by-kicker{display:inline-block;font:700 12px/1 Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--red);margin-bottom:14px}
.by-pill{display:inline-block;background:var(--red);color:#fff;font:700 12px/1 Arial,sans-serif;letter-spacing:.08em;padding:9px 14px;border-radius:4px}
.by-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 28px;border-radius:6px;background:var(--red);color:#fff!important;font:700 16px Arial,sans-serif;box-shadow:0 10px 24px rgba(200,35,58,.3);transition:transform .2s,box-shadow .2s}
.by-btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(200,35,58,.4)}
.by-ghost{display:inline-flex;align-items:center;min-height:52px;padding:0 6px;color:#fff!important;font:600 15px Arial,sans-serif;border-bottom:1px solid rgba(255,255,255,.4)}
.by-btn:focus-visible,.by-ghost:focus-visible,.by-back:focus-visible,.by summary:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
.by-back{position:sticky;top:12px;z-index:30;margin:0 0 -60px 16px;min-height:44px;padding:0 18px;display:inline-flex;align-items:center;gap:8px;background:rgba(15,24,40,.78);backdrop-filter:blur(6px);border:1px solid rgba(216,180,90,.5);border-radius:999px;color:#fff;font:600 14px Arial,sans-serif;cursor:pointer}
.by-back:hover{border-color:var(--gold);color:var(--gold)}
/* hero */
.by-hero{position:relative;overflow:hidden;background:radial-gradient(ellipse at 75% 30%,#24345A,transparent 60%),linear-gradient(160deg,var(--navy),var(--navy2));color:#E6EAF2;padding:110px 0 90px}
.by-hero .by-wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center}
.by-hero h1{color:#fff;font-size:clamp(56px,7.5vw,96px);line-height:.98;letter-spacing:.01em;margin:22px 0 14px;text-transform:uppercase}
.by-rule{width:120px;height:4px;background:var(--red);margin:0 0 22px}
.by-sub{font-size:20px;line-height:1.5;color:#CCD4E3;max-width:560px;margin:0 0 10px}
.by-tag{font:italic 22px/1.4 'DM Serif Display',Georgia,serif;color:var(--gold);margin:0 0 30px}
.by-ctas{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px}
.by-price{font-size:14px;color:#AAB5C8;margin:14px 0 0}
.by-cover{justify-self:center;perspective:1200px}
.by-cover img{display:block;width:min(360px,80vw);height:auto;border-radius:3px;transform:rotateY(-14deg) rotateZ(-2deg);box-shadow:30px 40px 70px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.06);transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.by-cover:hover img{transform:rotateY(-4deg) rotateZ(0)}
.by-glint{position:absolute;width:6px;height:6px;border-radius:50%;background:#FFE7A6;box-shadow:0 0 12px 4px rgba(216,180,90,.7);opacity:0;animation:byGlint var(--t) ease-in-out var(--d) infinite;pointer-events:none}
@keyframes byGlint{0%,70%,100%{opacity:0;transform:scale(.4)}80%{opacity:1;transform:scale(1.3)}90%{opacity:.2;transform:scale(.6)}}
/* hook */
.by-hook{background:#fff}
.by-hook .by-wrap{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.by-hook p{margin:0 0 18px}
.by-lead{font:clamp(24px,2.6vw,32px)/1.35 'DM Serif Display',Georgia,serif;color:var(--ink)}
/* countdown */
.by-auction{background:var(--navy2);border-radius:16px;padding:26px;color:#fff;box-shadow:0 24px 50px rgba(15,24,40,.35)}
.by-live{display:flex;align-items:center;gap:8px;font:700 12px Arial,sans-serif;letter-spacing:.12em;color:#FF6B7D}
.by-live::before{content:'';width:9px;height:9px;border-radius:50%;background:var(--red);box-shadow:0 0 0 0 rgba(200,35,58,.7);animation:byPing 1.4s infinite}
@keyframes byPing{to{box-shadow:0 0 0 10px rgba(200,35,58,0)}}
.by-lot{margin:14px 0 4px;font-size:15px;color:#AAB5C8}
.by-bidbox{height:72px;overflow:hidden;margin:4px 0 12px}
.by-bids{animation:byBids 7s steps(1,end) infinite}
.by-bids span{display:block;height:72px;font:64px/72px 'DM Serif Display',Georgia,serif;color:#fff}
@keyframes byBids{0%{transform:translateY(0)}18%{transform:translateY(-72px)}34%{transform:translateY(-144px)}50%{transform:translateY(-216px)}64%{transform:translateY(-288px)}100%{transform:translateY(-288px)}}
.by-timer{height:8px;border-radius:999px;background:rgba(255,255,255,.12);overflow:hidden}
.by-timer i{display:block;height:100%;background:linear-gradient(90deg,#FF6B7D,var(--red));transform-origin:left;animation:byTimer 7s linear infinite}
@keyframes byTimer{from{transform:scaleX(1)}64%{transform:scaleX(.04)}to{transform:scaleX(.04)}}
.by-thought{margin:16px 0 0;font:italic 18px/1.4 'DM Serif Display',Georgia,serif;color:var(--gold);opacity:0;animation:byThought 7s infinite}
@keyframes byThought{0%,60%{opacity:0;transform:translateY(6px)}68%,96%{opacity:1;transform:none}100%{opacity:0}}
/* journey */
.by-journey{background:var(--paper)}
.by-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:36px}
.by-col{background:#fff;border:1px solid #DDE1E9;border-radius:14px;padding:26px 22px}
.by-col h3{font:700 15px Arial,sans-serif;letter-spacing:.14em;color:var(--red);text-transform:uppercase;margin-bottom:16px}
.by-step{display:flex;align-items:center;min-height:52px;margin-top:10px;padding:0 16px;border:2px solid var(--navy);border-radius:8px;font:700 15px Arial,sans-serif;color:var(--ink)}
.by-step.dark{background:var(--navy);color:#fff}
.by-step.warn{border-color:var(--red)}
.by-quote{margin:40px auto 0;max-width:760px;text-align:center;font:clamp(24px,2.8vw,34px)/1.3 'DM Serif Display',Georgia,serif;color:var(--ink)}
/* included */
.by-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin:34px 0 46px}
.by-stat{background:#fff;border:1px solid #DDE1E9;border-radius:14px;padding:26px}
.by-stat b{display:block;font:400 64px/1 'DM Serif Display',Georgia,serif;color:var(--red)}
.by-stat strong{display:block;margin:10px 0 8px;font:700 14px Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}
.by-stat p{margin:0;font-size:15px;color:#4A5468}
.by-tools{columns:2;column-gap:40px;padding:0;margin:0;list-style:none;counter-reset:t}
.by-tools li{break-inside:avoid;padding:10px 0 10px 44px;position:relative;border-bottom:1px solid #DDE1E9;counter-increment:t}
.by-tools li::before{content:counter(t,decimal-leading-zero);position:absolute;left:0;top:10px;font:700 14px Arial,sans-serif;color:var(--red)}
.by-note{margin:18px 0 0;font-size:14px;color:#5B6478}
/* inside */
.by-inside{background:var(--navy);color:#E6EAF2}
.by-inside h2{color:#fff}
.by-inside .by-wrap{display:grid;grid-template-columns:1.6fr 1fr;gap:40px;align-items:center}
.by-inside img{display:block;width:100%;height:auto;border-radius:10px;box-shadow:0 24px 50px rgba(0,0,0,.4)}
.by-phone{max-width:280px;justify-self:center;transform:rotate(3deg)}
.by-phone img{border-radius:22px;border:8px solid #0B1220}
.by-cap{margin:12px 0 0;text-align:center;font-size:14px;color:#AAB5C8}
/* learn / fit */
.by-learn{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 40px;margin:28px 0 0;padding:0;list-style:none}
.by-learn li{position:relative;padding-left:30px}
.by-learn li::before{content:'';position:absolute;left:0;top:9px;width:14px;height:8px;border-left:3px solid var(--red);border-bottom:3px solid var(--red);transform:rotate(-45deg)}
.by-fit{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:40px}
.by-box{border-radius:14px;padding:26px}
.by-box.yes{background:#fff;border:1px solid #DDE1E9}
.by-box.no{background:#FBEFF1;border:1px solid #F0C7CE}
.by-box h3{font-size:26px;margin-bottom:12px}
.by-box ul{margin:0;padding-left:20px}
.by-box li{margin-bottom:8px}
/* author */
.by-author{background:#fff}
.by-author .by-wrap{max-width:820px;text-align:center}
.by-author p{font-size:19px}
.by-sign{font:italic 26px/1.3 'DM Serif Display',Georgia,serif;color:var(--red);margin:24px 0 0}
/* faq */
.by-faq{max-width:820px;margin:30px auto 0}
.by-faq details{border-bottom:1px solid #DDE1E9}
.by-faq summary{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:60px;cursor:pointer;list-style:none;font:700 17px Arial,sans-serif;color:var(--ink)}
.by-faq summary::-webkit-details-marker{display:none}
.by-faq summary::after{content:'+';font:400 26px/1 Arial;color:var(--red);transition:transform .25s}
.by-faq details[open] summary::after{transform:rotate(45deg)}
.by-faq details p{margin:0 0 20px;color:#4A5468}
/* final */
.by-final{background:linear-gradient(160deg,var(--navy),var(--navy2));color:#E6EAF2;text-align:center}
.by-final h2{color:#fff;font-size:clamp(40px,5.5vw,68px)}
.by-final p{max-width:560px;margin:0 auto 28px;font-size:19px}
.by-legal{max-width:760px;margin:36px auto 0;font-size:13px;color:#8F9AB0}
.by-rise{animation:byRise .9s ease both}
@supports (animation-timeline: view()){@media (prefers-reduced-motion: no-preference){.by-rise{animation:byRise ease-out both;animation-timeline:view();animation-range:entry 5% cover 25%}}}
@keyframes byRise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@media (max-width:820px){
.by-hero{padding:90px 0 64px}.by-hero .by-wrap,.by-hook .by-wrap,.by-inside .by-wrap,.by-fit{grid-template-columns:1fr;gap:36px}
.by-cols,.by-stats{grid-template-columns:1fr}.by-tools{columns:1}.by-learn{grid-template-columns:1fr}
}
@media (prefers-reduced-motion: reduce){.by-bids,.by-timer i,.by-thought,.by-glint,.by-live::before{animation:none}.by-thought{opacity:1}}
.door-enter{position:absolute;left:50%;bottom:7%;transform:translateX(-50%);z-index:2;min-height:48px;padding:0 24px;border:1px solid #E2C27A;border-radius:999px;background:rgba(28,23,32,.82);color:#F7F1E6;font:700 17px 'Nunito Sans',system-ui,sans-serif;letter-spacing:.04em;cursor:pointer;display:flex;align-items:center;gap:10px;white-space:nowrap;box-shadow:0 0 0 0 rgba(226,194,122,.6),0 8px 20px rgba(0,0,0,.45);animation:enterIn .5s cubic-bezier(.2,.8,.2,1),doorCall 2.4s ease-in-out .6s infinite}
.stage.entering .door-enter{opacity:0;transition:opacity .3s}
.door-enter:hover{background:#2A1838;border-color:#FFE29A}
.door-enter:focus-visible{outline:3px solid #F2C14E;outline-offset:3px}
@keyframes doorCall{0%,100%{box-shadow:0 0 0 0 rgba(226,194,122,.55),0 8px 20px rgba(0,0,0,.45)}50%{box-shadow:0 0 0 10px rgba(226,194,122,0),0 0 26px 6px rgba(226,194,122,.35)}}
.door-title{margin:0;padding:8px 20px;background:rgba(28,23,32,.82);color:#F7F1E6;border:1px solid #C9A65A;border-radius:999px;font:600 17px 'Fraunces',Georgia,serif;white-space:nowrap;box-shadow:0 10px 24px rgba(28,23,32,.45)}
/* ---------- Coloring & puzzle books ---------- */
.cb{--cream:#FFF6DC;--sun:#F2C14E;--coral:#E2553F;--teal:#1F7F74;--ink:#3A2A12;background:var(--cream);color:#4A3A22;font:17px/1.65 'Nunito Sans',system-ui,sans-serif;overflow-x:clip;animation:worldIn .9s ease}
.cb h1,.cb h2,.cb h3{font-family:'Fredoka','Nunito Sans',sans-serif;font-weight:600;color:var(--ink);margin:0;text-wrap:balance}
.cb-wrap{max-width:1160px;margin:0 auto;padding:0 20px}
.cb-back{position:sticky;top:12px;z-index:30;margin:0 0 -60px 16px;min-height:44px;padding:0 18px;display:inline-flex;align-items:center;gap:8px;background:rgba(255,246,220,.9);backdrop-filter:blur(6px);border:2px solid var(--ink);border-radius:999px;color:var(--ink);font:700 14px 'Nunito Sans',sans-serif;cursor:pointer;box-shadow:3px 3px 0 var(--ink)}
.cb-back:hover{background:var(--sun)}
.cb-back:focus-visible,.cb-buy:focus-visible,.cb-jump:focus-visible{outline:3px solid var(--teal);outline-offset:3px}
.cb-hero{position:relative;padding:110px 0 70px;text-align:center;overflow:hidden;background:radial-gradient(circle at 15% 20%,#FFE08A 0,transparent 30%),radial-gradient(circle at 85% 30%,#FFD1C7 0,transparent 28%),radial-gradient(circle at 70% 90%,#CDEDE6 0,transparent 30%)}
.cb-hero h1{font-size:clamp(52px,8vw,96px);line-height:1;margin:14px 0 18px}
.cb-hero h1 span{color:var(--coral);display:inline-block;animation:cbWiggle 3.2s ease-in-out infinite}
@keyframes cbWiggle{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg) translateY(-4px)}}
.cb-eyebrow{display:inline-block;padding:7px 14px;border-radius:999px;background:#fff;border:2px solid var(--ink);font:800 12px/1 'Nunito Sans',sans-serif;letter-spacing:.14em;color:var(--ink)}
.cb-intro{max-width:600px;margin:0 auto 28px;font-size:20px}
.cb-jumps{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.cb-jump{display:inline-flex;align-items:center;min-height:48px;padding:0 22px;border:2px solid var(--ink);border-radius:999px;background:#fff;color:var(--ink)!important;text-decoration:none;font-weight:800;box-shadow:3px 3px 0 var(--ink);transition:transform .15s,box-shadow .15s}
.cb-jump:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--ink)}
.cb-crayon{position:absolute;width:110px;height:18px;border-radius:4px 10px 10px 4px;animation:cbFloat var(--t) ease-in-out infinite alternate;pointer-events:none}
.cb-crayon::after{content:'';position:absolute;right:-16px;top:2px;border-left:18px solid currentColor;border-top:7px solid transparent;border-bottom:7px solid transparent}
.cb-crayon::before{content:'';position:absolute;left:18px;top:0;bottom:0;width:10px;background:rgba(0,0,0,.18)}
@keyframes cbFloat{from{transform:translateY(0) rotate(var(--r))}to{transform:translateY(-14px) rotate(calc(var(--r) + 6deg))}}
.cb-shelf{padding:56px 0 80px}
.cb-shelf h2{font-size:clamp(32px,4vw,46px)}
.cb-shelf-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:8px 24px;margin-bottom:28px}
.cb-shelf-head p{margin:6px 0 0;max-width:520px}
.cb-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:28px}
.cb-card{display:flex;flex-direction:column;background:#fff;border:2px solid var(--ink);border-radius:18px;padding:20px;box-shadow:5px 5px 0 var(--ink)}
.cb-cover{display:block;width:72%;margin:4px auto 18px;border-radius:4px;box-shadow:0 14px 26px rgba(58,42,18,.25);transform:rotate(-2deg);transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.cb-card:hover .cb-cover{transform:rotate(1deg) translateY(-6px) scale(1.03)}
.cb-age{align-self:flex-start;padding:5px 12px;border-radius:999px;font:800 12px/1.2 'Nunito Sans',sans-serif;letter-spacing:.06em;color:#fff}
.cb-card h3{font-size:24px;line-height:1.15;margin:12px 0 4px}
.cb-sub{margin:0 0 10px;font-weight:700;color:#7A6440;font-size:15px}
.cb-card p.cb-blurb{margin:0 0 18px;font-size:16px}
.cb-buy{margin-top:auto;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;border-radius:12px;background:var(--ink);color:#FFF6DC!important;text-decoration:none;font-weight:800}
.cb-buy:hover{background:var(--coral)}
.cb-kids{background:var(--cream)}
.cb-puzzles{background:#EAF4F1;border-top:2px dashed #9CC8BE}
.cb-promise{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin:34px 0 0}
.cb-promise div{padding:16px 18px;border-radius:14px;background:rgba(255,255,255,.7);border:2px solid rgba(58,42,18,.15);font-weight:700;color:var(--ink)}
.cb-note{margin:28px 0 0;font-size:14px;color:#7A6440;text-align:center}
@media (prefers-reduced-motion: reduce){.cb-hero h1 span,.cb-crayon{animation:none}}
/* Fraunces: use its calmer text-size letterforms everywhere (no oversized display f's) */
*{font-optical-sizing:none;font-variation-settings:"opsz" 28}
/* ---------- shared nav buttons ---------- */
.navbtn{background:none;border:0;padding:6px 0;min-height:44px;font:inherit;font-weight:600;color:#E2C27A;cursor:pointer}
.navbtn:hover,.navlink:hover{color:#FFE29A}
.navbtn:focus-visible,.navlink:focus-visible,.hm-btn:focus-visible,.hm-link:focus-visible,.ft a:focus-visible,.ft button:focus-visible{outline:3px solid #F2C14E;outline-offset:3px}
.navlink{display:inline-flex;align-items:center;min-height:44px;color:#E2C27A;text-decoration:none}
/* ---------- homepage sections ---------- */
.hm-btn{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 24px;border-radius:999px;border:1px solid #2A1838;background:#2A1838;color:#F7F1E6!important;font:700 16px 'Nunito Sans',system-ui,sans-serif;text-decoration:none;cursor:pointer}
.hm-btn:hover{background:#3E2452}
.hm-btn.gold{background:#E2C27A;border-color:#E2C27A;color:#2A1838!important}
.hm-btn.gold:hover{background:#F0D493}
.hm-link{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 4px;background:none;border:0;border-bottom:1px solid #C9A65A;color:#2A1838;font:700 16px 'Nunito Sans',system-ui,sans-serif;text-decoration:none;cursor:pointer}
.hm-spot{background:#1C1720;color:#E8E1EC;overflow:hidden}
.hm-spot-in{max-width:1180px;margin:0 auto;padding:72px 16px;display:flex;flex-wrap:wrap;align-items:center;gap:40px 64px}
.hm-spot img{width:min(280px,70vw);height:auto;transform:rotate(-3deg);box-shadow:20px 28px 50px rgba(0,0,0,.6),0 0 0 1px rgba(148,220,224,.25);transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.hm-spot img:hover{transform:rotate(0) scale(1.02)}
.hm-photo{width:240px;aspect-ratio:1;object-fit:contain;align-self:flex-end;margin-bottom:-72px}
/* ---------- footer ---------- */
.ft{background:#1C1720;color:#D8CCE3;padding:40px 16px 32px}
.ft-in{max-width:1180px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 32px}
.ft-links{display:flex;flex-wrap:wrap;gap:4px 22px;font-size:15px}
.ft a,.ft button{display:inline-flex;align-items:center;min-height:44px;background:none;border:0;padding:0;font:inherit;color:#E2C27A;text-decoration:none;cursor:pointer}
.ft a:hover,.ft button:hover{color:#FFE29A}
/* ---------- About the author ---------- */
.au{--sage:#EEF1EA;--deep:#2C3A31;--moss:#3F5B48;--gold:#B8913E;background:var(--sage);color:#3B4A40;font:17px/1.75 'Nunito Sans',system-ui,sans-serif;animation:worldIn .9s ease;overflow-x:clip}
.au h1,.au h2,.au h3{margin:0;color:var(--deep);font-family:'Fraunces',Georgia,serif;font-weight:600;text-wrap:balance}
.au-wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.au-back{position:sticky;top:12px;z-index:30;margin:0 0 -60px 16px;min-height:44px;padding:0 18px;display:inline-flex;align-items:center;gap:8px;background:rgba(238,241,234,.88);backdrop-filter:blur(6px);border:1px solid var(--moss);border-radius:999px;color:var(--deep);font:700 14px 'Nunito Sans',sans-serif;cursor:pointer}
.au-back:hover{background:#fff}
.au-back:focus-visible,.au-tile:focus-visible,.au a:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.au-hero{position:relative;padding:110px 0 80px;background:radial-gradient(ellipse at 20% 30%,rgba(255,255,255,.75),transparent 55%),radial-gradient(ellipse at 85% 80%,rgba(184,145,62,.14),transparent 55%)}
.au-mist{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 40% 30% at 10% 90%,rgba(255,255,255,.7),transparent 70%),radial-gradient(ellipse 35% 25% at 90% 15%,rgba(255,255,255,.6),transparent 70%);animation:auMist 14s ease-in-out infinite alternate}
@keyframes auMist{from{transform:translateX(-2%)}to{transform:translateX(3%)}}
.au-hero .au-wrap{position:relative;display:grid;grid-template-columns:auto 1fr;gap:56px;align-items:center}
.au-portrait{position:relative;width:min(320px,70vw)}
.au-portrait img{display:block;width:100%;aspect-ratio:1;object-fit:contain}
.au-emblem{position:absolute;right:-6px;bottom:18%;width:84px;height:84px;border-radius:50%;background:#fff;padding:8px;box-shadow:0 10px 22px rgba(44,58,49,.25)}
.au-eyebrow{font:800 12px/1 'Nunito Sans',sans-serif;letter-spacing:.18em;color:var(--moss);margin:0 0 10px}
.au-name{font:400 clamp(64px,9vw,118px)/1.05 Praise,'Fraunces',cursive!important;color:var(--deep)}
.au-intro{font-size:20px;line-height:1.6;margin:14px 0 0;max-width:520px}
.au-sec{padding:clamp(64px,8vw,100px) 0}
.au-bio{background:#fff}
.au-bio .au-wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px}
.au-bio h2{font-size:clamp(36px,4.4vw,56px);line-height:1.1}
.au-bio h2 em{font-style:italic;color:inherit}
.au-bio p{margin:0 0 18px}
.au-bio p.first{font-size:21px;color:var(--deep)}
.au-making h2{font-size:clamp(32px,4vw,46px);margin-bottom:8px}
.au-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px;margin-top:30px}
.au-tile{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-height:170px;padding:22px;border-radius:16px;background:#fff;border:1px solid #D3DBD0;color:var(--deep);font:inherit;text-align:left;text-decoration:none;cursor:pointer;transition:transform .2s,box-shadow .2s}
.au-tile:hover{transform:translateY(-4px);box-shadow:0 14px 28px rgba(44,58,49,.14)}
.au-tile small{font:800 11px/1 'Nunito Sans',sans-serif;letter-spacing:.16em;color:var(--gold)}
.au-tile strong{font:600 23px/1.2 'Fraunces',Georgia,serif}
.au-tile span{font-size:15px;color:#5A6A5F}
.au-tile em{margin-top:auto;font-style:normal;font-weight:800;color:var(--moss)}
.au-also{margin:22px 0 0;font-size:15px;color:#5A6A5F}
.au-connect{background:var(--deep);color:#DCE5DD;text-align:center}
.au-connect h2{color:#fff;font-size:clamp(32px,4vw,46px)}
.au-connect p{max-width:560px;margin:12px auto 26px}
.au-links{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.au-links a{display:inline-flex;align-items:center;min-height:48px;padding:0 22px;border-radius:999px;border:1px solid rgba(255,255,255,.35);color:#fff;text-decoration:none;font-weight:700}
.au-links a:hover{border-color:#E2C27A;color:#E2C27A}
.au-links a.main{background:#E2C27A;border-color:#E2C27A;color:#2C3A31}
.au-logo{width:110px;margin:40px auto 0;opacity:.9}
@media (max-width:820px){.au-hero .au-wrap,.au-bio .au-wrap{grid-template-columns:1fr;gap:36px}.au-portrait{justify-self:center}}
@media (prefers-reduced-motion: reduce){.au-mist{animation:none}}
/* ---------- Blog: From the Writing Desk ---------- */
.bl{--ivory:#F7F1E6;--ink:#2A1838;--plum:#5B2D82;--gold:#B8913E;background:var(--ivory);color:#4E4255;font:17px/1.75 'Nunito Sans',system-ui,sans-serif;animation:worldIn .7s ease}
.bl h1,.bl h2,.bl h3{margin:0;color:var(--ink);font-family:'Fraunces',Georgia,serif;font-weight:600;text-wrap:balance}
.bl-wrap{max-width:1100px;margin:0 auto;padding:0 20px}
.bl-back{position:sticky;top:12px;z-index:30;margin:0 0 -60px 16px;min-height:44px;padding:0 18px;display:inline-flex;align-items:center;gap:8px;background:rgba(247,241,230,.9);backdrop-filter:blur(6px);border:1px solid #C9A65A;border-radius:999px;color:var(--ink);font:700 14px 'Nunito Sans',sans-serif;cursor:pointer}
.bl-back:hover{background:#fff}
.bl button:focus-visible,.bl a:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.bl-hero{position:relative;padding:110px 0 56px;text-align:center;background:radial-gradient(ellipse at 50% 0%,#EADCC6,transparent 70%)}
.bl-hero p.k{margin:0 0 10px;font:800 12px/1 'Nunito Sans',sans-serif;letter-spacing:.18em;color:var(--plum)}
.bl-hero h1{font-size:clamp(44px,6.5vw,80px);line-height:1.05}
.bl-hero h1 em{font-style:italic;color:var(--plum)}
.bl-hero .lead{max-width:600px;margin:16px auto 0;font-size:19px}
.bl-sign{display:block;margin-top:14px;font:34px/1.2 Praise,'Fraunces',cursive;color:var(--gold)}
.bl-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:34px 0 0}
.bl-chip{min-height:44px;padding:0 18px;border-radius:999px;border:1px solid #CDBFA6;background:#fff;color:var(--ink);font:700 14px 'Nunito Sans',sans-serif;cursor:pointer}
.bl-chip:hover{border-color:var(--plum)}
.bl-chip.on{background:var(--ink);border-color:var(--ink);color:#F7F1E6}
.bl-list{padding:40px 0 80px}
.bl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}
.bl-card{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:26px;border-radius:16px;background:#fff;border:1px solid #E2D6C1;text-align:left;font:inherit;color:inherit;cursor:pointer;transition:transform .2s,box-shadow .2s}
.bl-card:hover{transform:translateY(-4px);box-shadow:0 16px 30px rgba(42,24,56,.12)}
.bl-card.feature{grid-column:1/-1;flex-direction:row;flex-wrap:wrap;align-items:center;gap:24px 40px;padding:34px;background:var(--ink);border-color:var(--ink);color:#D8CCE3}
.bl-card.feature h2{color:#F7F1E6}
.bl-card.feature .bl-meta{color:#E2C27A}
.bl-card.feature .bl-read{color:#E2C27A}
.bl-img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:10px}
.bl-card.feature .bl-img{flex:1 1 320px;width:auto}
.bl-ph{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:16/9;border-radius:10px;border:2px dashed #CDBFA6;color:#8A7A66;font-size:14px}
.bl-card.feature .bl-ph{flex:1 1 320px;width:auto;border-color:#6A5878;color:#B9AEC9}
.bl-card.feature .bl-txt{flex:1 1 360px;display:flex;flex-direction:column;gap:10px}
.bl-meta{font:800 11px/1.4 'Nunito Sans',sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.bl-card h2{font-size:24px;line-height:1.2}
.bl-card.feature h2{font-size:clamp(28px,3vw,38px)}
.bl-card p{margin:0;font-size:16px}
.bl-read{margin-top:auto;font-weight:800;color:var(--plum)}
.bl-empty{padding:40px;text-align:center;border:2px dashed #CDBFA6;border-radius:16px}
.bl-sub{background:#2A1838;color:#D8CCE3;text-align:center;padding:64px 0}
.bl-sub h2{color:#F7F1E6;font-size:34px}
.bl-sub p{max-width:520px;margin:10px auto 22px}
/* single post */
.bl-post{padding:100px 0 80px}
.bl-post .bl-wrap{max-width:720px}
.bl-post h1{font-size:clamp(36px,5vw,56px);line-height:1.1;margin:10px 0 18px}
.bl-post .bl-ph{margin:26px 0 30px}
.bl-post p{margin:0 0 20px}
.bl-post .first{font-size:21px;color:var(--ink)}
.bl-post blockquote{margin:30px 0;padding-left:20px;border-left:3px solid var(--gold);font:italic 24px/1.5 'Fraunces',Georgia,serif;color:var(--ink)}
.bl-endnav{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;margin-top:40px;padding-top:24px;border-top:1px solid #E2D6C1}
.bl-textbtn{min-height:44px;background:none;border:0;padding:0;font:800 15px 'Nunito Sans',sans-serif;color:var(--plum);cursor:pointer}
.bl-txt{display:flex;flex-direction:column;gap:10px;width:100%}
.bl-card.feature .bl-txt{width:auto}
.enter{animation:enterIn .5s cubic-bezier(.2,.8,.2,1)}
@keyframes enterIn{from{opacity:0;translate:0 10px;scale:.92}to{opacity:1;translate:0 0;scale:1}}
.world{animation:worldIn .8s ease}
@keyframes worldIn{from{opacity:0;transform:scale(1.02)}to{opacity:1;transform:none}}
.cta:disabled{opacity:.5;cursor:not-allowed}
@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}

/* ---------- real-site additions (links that were buttons in the prototype) ---------- */
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
.skip{position:absolute;left:12px;top:-60px;z-index:100;padding:10px 16px;background:#F7F1E6;color:#2A1838;border-radius:8px;font:700 15px 'Nunito Sans',sans-serif}
.skip:focus{top:12px}
a.pi-back,a.by-back,a.cb-back,a.bl-back,a.au-back,a.navbtn,a.hm-link,a.hm-btn,a.door-enter,a.au-tile{text-decoration:none}
a.navbtn{display:inline-flex;align-items:center}
.door-enter[hidden]{display:none!important}
.pi-return a:not(.pi-link){display:inline-flex;align-items:center;min-height:44px;border-bottom:1px solid #a4d2d65c;color:#E8E9E3;font:14px Arial,sans-serif;text-decoration:none}
.pi-return a:not(.pi-link):hover{color:#94DCE0}
/* back pills: block-level so their negative margin doesn't leave a strip above each hero */
.pi-back,.by-back,.cb-back,.bl-back,.au-back{display:flex;width:fit-content}
/* blog feature card: keep the image inside the card */
.bl-card.feature .bl-img{min-width:0;max-width:100%}
.bl-card{min-width:0}
/* coloring page: crayons would sit on top of the headline on phones */
@media (max-width:760px){.cb-crayon{display:none}}
/* privacy page */
.pv h2{margin:34px 0 12px;font-size:26px}
.pv a,.bl-hero .lead a{color:#5B2D82;text-underline-offset:3px}
/* 404 */
.nf{position:relative;flex:1;min-height:76vh;display:flex;align-items:center;justify-content:center;padding:60px 16px;overflow:hidden;background:#1C1720}
.nf-bg{position:absolute;inset:0;background:url(/img/store-wide.jpg) center/cover no-repeat;filter:brightness(.55) saturate(.9)}
@media (max-width:760px){.nf-bg{background-image:url(/img/store-tall.jpg)}}
.nf-card{position:relative;max-width:520px;padding:34px 30px;text-align:center;background:rgba(247,241,230,.95);border:1px solid #C9A65A;border-radius:16px;box-shadow:0 24px 50px rgba(0,0,0,.45)}
.nf-k{margin:0 0 10px;font:800 12px/1 'Nunito Sans',sans-serif;letter-spacing:.18em;color:#5B2D82}
.nf h1{margin:0 0 12px;font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:clamp(34px,5vw,48px);line-height:1.1;color:#2A1838}
.nf h1 em{font-style:italic;color:#5B2D82}
.nf-card p{margin:0 0 22px;color:#4E4255;font-size:17px;line-height:1.6}
.nf-links{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px 22px}
/* Pure Intention FAQ */
.pi-faq{border-top:1px solid #d0f1f126}
.pi-faq details{border-bottom:1px solid #94dce033}
.pi-faq summary{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:60px;cursor:pointer;list-style:none;font:22px/1.4 Casale,Georgia,serif;color:#E8E9E3}
.pi-faq summary::-webkit-details-marker{display:none}
.pi-faq summary::after{content:'+';font:300 28px/1 Arial;color:#94DCE0;transition:transform .25s}
.pi-faq details[open] summary::after{transform:rotate(45deg)}
.pi-faq summary:focus-visible{outline:2px solid #94DCE0;outline-offset:4px}
.pi-faq details p{margin:0 0 22px;color:#c6d0d1}
.pi-faq em{font-style:italic;color:#E8E9E3}
