/* OCD planet areas (/ocd/<area>/): guide cards, the loop, the feeding sim, the reassurance trap, the rooms. Light dawn look; slow, soft motion only. */
#panel{min-height:60vh}
#panel h1{font-size:clamp(44px,12vw,68px)}
.card{text-align:center;padding:28px 20px 24px}
.card h2{margin:0 0 14px;font:800 clamp(26px,7vw,34px)/1.12 var(--disp);color:var(--p)}
.card p{margin:0 auto 12px;max-width:450px;color:var(--ink);font-size:17.5px;line-height:1.6}
.card h3{margin:18px 0 4px;font:700 12px/1 var(--disp);letter-spacing:.2em;text-transform:uppercase;color:var(--a2)}
.card .go{margin-top:18px}
.lines{list-style:none;margin:0 auto;padding:0;max-width:430px;display:grid;gap:8px}
.lines li{padding:13px 16px;border-radius:var(--r-s);background:rgba(255,255,255,.8);box-shadow:inset 3px 0 0 var(--sage);color:var(--p);font:600 17px/1.4 var(--sans);text-align:left}
.dots{display:flex;justify-content:center;gap:4px;margin:16px 0 4px}
.dots button{width:30px;height:30px;padding:0;border:0;background:none;cursor:pointer;display:grid;place-items:center;-webkit-tap-highlight-color:transparent}
.dots button::after{content:'';width:8px;height:8px;border-radius:8px;background:rgba(47,120,128,.22);transition:background .5s,width .5s}
.dots button[aria-selected="true"]::after{width:22px;background:var(--a)}
.nav{max-width:440px;margin:10px auto 0}
.loop{display:block;width:100%;max-width:310px;margin:0 auto}
.loop .lr{fill:none;stroke:rgba(47,120,128,.3);stroke-width:1.5;stroke-dasharray:6 6}
.loop .lt{fill:#e9b85c;filter:drop-shadow(0 0 4px rgba(233,184,92,.8))}
.loop .ln{cursor:pointer;outline:none}
.loop .ln polygon{fill:#fff;stroke:rgba(47,120,128,.35);stroke-width:1.2;stroke-linejoin:round;transition:fill .5s,stroke .5s}
.loop .ln text{fill:var(--p);font:700 9.5px var(--disp);letter-spacing:.04em;text-transform:uppercase;text-anchor:middle;pointer-events:none}
.loop .ln.on polygon,.loop .ln:focus-visible polygon{fill:#dff0ec;stroke:var(--a);stroke-width:2}
.loop .lc{fill:var(--dim);font:700 12px var(--disp);letter-spacing:.14em;text-anchor:middle;text-transform:uppercase}
.lp{min-height:5.4em;margin-top:12px!important;font:600 18.5px/1.5 var(--sans)!important;color:var(--p)!important}
.th{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.th .say{font:italic 500 25px/1.3 var(--serif);color:var(--p)}
.th .x{color:var(--p)}
.th .tiny{font-size:14.5px;color:var(--mute)}
.th .btn{margin-top:8px}
main{max-width:660px}
.ah{margin:6px 0 4px;font:800 clamp(40px,11vw,68px)/1.02 var(--disp);letter-spacing:-.01em;color:var(--p)}
.as{margin:0 auto 18px;color:var(--mute);font:italic 500 20px/1.3 var(--serif)}
.tabs{display:flex;justify-content:center;gap:6px;margin:0 auto 14px;flex-wrap:wrap}.tabs .chip{min-height:42px;padding:8px 16px;font-size:15px}
.sim svg{display:block;width:100%;max-width:300px;margin:0 auto}
#mass,#core{transition:r 1.8s cubic-bezier(.2,.8,.2,1)}
.meters{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:420px;margin:0 auto 4px}
.meters div{padding:10px 4px;border-radius:var(--r-s);background:rgba(255,255,255,.8);box-shadow:inset 0 0 0 1px var(--edge)}
.meters small{display:block;font:700 10.5px/1 var(--disp);letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}.meters b{font:800 26px/1.2 var(--disp);color:var(--p)}
.tbox{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.tbox .say,.room .say{font:italic 500 24px/1.3 var(--serif);color:var(--p);margin-bottom:8px}
.bars3{display:grid;gap:10px;max-width:420px;margin:8px auto 4px;text-align:left}
.bars3 small{display:block;font:700 11px/1 var(--disp);letter-spacing:.14em;text-transform:uppercase;color:var(--mute);margin-bottom:5px}
.bars3 span{display:block;height:10px;border-radius:10px;background:rgba(47,120,128,.1);overflow:hidden}
.bars3 i{display:block;height:100%;width:0;border-radius:10px;transition:width 1.8s cubic-bezier(.2,.8,.2,1)}
#bd{background:linear-gradient(90deg,#c9b6d6,#9a86b4)}#br{background:linear-gradient(90deg,#f3dca8,#e9b85c)}#bo{background:linear-gradient(90deg,#a9d4c4,#2f8f88)}
.doors{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media (min-width:700px){.doors{grid-template-columns:repeat(4,1fr)}}
.door{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:8px;min-height:150px;padding:16px 8px 18px;text-decoration:none;color:var(--ink);border-radius:80px 80px var(--r-s) var(--r-s);background:linear-gradient(180deg,rgba(233,184,92,.18),rgba(255,255,255,.75) 45%);border:1px solid rgba(255,255,255,.95);box-shadow:var(--shadow);transition:transform .5s cubic-bezier(.22,.8,.24,1),box-shadow .5s;-webkit-tap-highlight-color:transparent}
.door:hover,.door:focus-visible{transform:translateY(-3px);box-shadow:0 14px 34px rgba(52,96,110,.16);outline:none}
.door .no{position:absolute;top:22px;left:50%;transform:translateX(-50%);font:700 11px/1 var(--disp);letter-spacing:.16em;color:var(--dim)}
.door svg{width:36px;height:36px;stroke:var(--a);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.door b{font:700 17px/1.1 var(--disp);color:var(--p);text-align:center}
.room{text-align:left}.room h2,.room .kick{text-align:center}.room .kick{margin:0 0 4px;font:700 12px/1 var(--disp);letter-spacing:.2em;color:var(--amb);text-transform:uppercase}
.room h3{margin-top:22px}.room p{margin-left:0;margin-right:0;max-width:none}.room .say{padding-left:14px;border-left:3px solid var(--sage)}
.room .rp{color:var(--p)}.room .rp b{font:700 13px var(--disp);letter-spacing:.12em;text-transform:uppercase;color:var(--amb)}
.areas{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:30px auto 0;max-width:560px}
.areas a{padding:10px 16px;min-height:42px;display:inline-flex;align-items:center;border-radius:999px;background:rgba(255,255,255,.78);box-shadow:inset 0 0 0 1px var(--edge);color:var(--ink);text-decoration:none;font:700 14px/1 var(--disp)}
.areas a:hover,.areas a:focus-visible{box-shadow:inset 0 0 0 1.5px var(--a);outline:none}
/* 'In your brain' notes: a warm gold aside, one or two lines on why the tool works */
.why{display:block;margin:18px auto 0;max-width:450px;padding:12px 16px 13px;border-radius:var(--r-s);background:linear-gradient(180deg,rgba(255,246,226,.95),rgba(255,251,242,.9));box-shadow:inset 3px 0 0 var(--gold),0 2px 8px rgba(168,112,28,.06);text-align:left}
.why b{display:flex;align-items:center;gap:6px;margin-bottom:4px;font:800 11.5px/1 var(--disp);letter-spacing:.18em;text-transform:uppercase;color:var(--amb)}
.why b svg{width:16px;height:16px;fill:none;stroke:var(--amb);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.why span{display:block;color:var(--ink);font:500 15.5px/1.5 var(--sans)}
.room .why{max-width:none}
/* the 'why it gets worse' curve (an illustration, not data) */
.cv{margin-top:4px}
.seg{margin:0 auto 10px}.seg .chip{min-height:42px;padding:8px 14px;font-size:15px}
.cvs{display:block;width:100%;max-width:440px;margin:0 auto;border-radius:18px;background:linear-gradient(180deg,rgba(243,249,251,.9),rgba(251,244,234,.9));box-shadow:inset 0 0 0 1px var(--edge)}
.cvs .grid line{stroke:rgba(47,120,128,.08);stroke-width:1}
.cvs .ax{stroke:rgba(47,120,128,.3);stroke-width:1.2}
.cvs .axl{fill:var(--dim);font:700 9.5px var(--disp);letter-spacing:.1em;text-transform:uppercase}
.cvs .ln{fill:none;stroke-width:2.6;stroke-linejoin:round;stroke-linecap:round}
.cvs .ln.pa{stroke:#8e7aa8}.cvs .ln.pb{stroke:#2f8f88}
.cvs .fill.pa{fill:url(#cvA)}.cvs .fill.pb{fill:url(#cvB)}
.cvs .ln.grow{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 2.4s cubic-bezier(.4,.1,.3,1)}.cvs .ln.grow.on{stroke-dashoffset:0}
.cvs .mk{stroke:#fff;stroke-width:1.5}.cvs .mk.pa{fill:#e9b85c}.cvs .mk.pb{fill:#2f8f88}
.cvs .mkl{font:800 9px var(--disp);letter-spacing:.08em;text-transform:uppercase;text-anchor:middle}.cvs .mkl.pa{fill:var(--amb)}.cvs .mkl.pb{fill:var(--a2)}
.cvn{margin:8px auto 4px!important;font-size:13px!important;color:var(--dim)!important;font-style:italic}
.cvm{margin-top:10px}.cvm[hidden]{display:none}
.cvm.ma i{background:linear-gradient(90deg,#d6cbe3,#8e7aa8)}.cvm.mb i{background:linear-gradient(90deg,#a9d4c4,#2f8f88)}
.cvc{min-height:4.6em}
/* compare lists */
.cmh{margin:6px auto 8px!important;font:700 12px/1 var(--disp)!important;letter-spacing:.18em;text-transform:uppercase;color:var(--dim)!important}
.cml.ca li{box-shadow:inset 3px 0 0 #b8a6cf}.cml.cb li{box-shadow:inset 3px 0 0 var(--a)}
/* the white bear */
.bear{margin-top:6px}
.bring{position:relative;width:120px;height:120px;margin:4px auto 12px}
.bring svg{width:120px;height:120px;transform:rotate(-90deg)}
.bring .bt{fill:none;stroke:rgba(47,120,128,.12);stroke-width:8}
.bring .bp{fill:none;stroke:var(--gold);stroke-width:8;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0;transition:stroke-dashoffset 1s linear}
.bring b{position:absolute;inset:0;display:grid;place-items:center;font:800 34px var(--disp);color:var(--p)}
.bbtn{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;max-width:360px;min-height:88px;margin:0 auto;border:0;border-radius:28px;background:#fff;box-shadow:inset 0 0 0 2px rgba(47,143,136,.35),var(--shadow);color:var(--p);font:800 20px var(--disp);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:transform .15s}
.bbtn:active{transform:scale(.97)}.bbtn span{min-width:48px;padding:6px 10px;border-radius:999px;background:#dff0ec;color:var(--a2)}
.bear .tiny{margin-top:10px!important;color:var(--mute);font-size:14.5px}
.bear .say,.card .tbox .say{font:italic 500 24px/1.3 var(--serif);color:var(--p)}
.cvlg{display:flex;justify-content:center;gap:18px;margin:10px auto 0!important;font:700 13px/1 var(--disp)!important}
.cvlg[hidden]{display:none}
.cvlg span{display:inline-flex;align-items:center;gap:7px}.cvlg span::before{content:'';width:18px;height:3px;border-radius:3px}
.cvlg .pa{color:#6f5a8c}.cvlg .pa::before{background:#8e7aa8}.cvlg .pb{color:var(--a2)}.cvlg .pb::before{background:#2f8f88}
