/* Roll Model's website, in the game's look: paper, ink red, lime and near-black; Bowlby One for anything loud, Figtree for anything
   you read; chunky pieces with a dark lip, like parts of a toy. Light and dark follow the phone's setting. */

@font-face{font-family:"Bowlby One";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/bowlby-one-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Figtree";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/figtree-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Figtree";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/figtree-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Figtree";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/figtree-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Figtree";font-style:normal;font-weight:800;font-display:swap;src:url(../fonts/figtree-latin-800-normal.woff2) format("woff2")}

:root{
  color-scheme:light dark;
  --paper:#F4EEE3;
  --paper-2:#EBE3D3;
  --card:#FFFDF8;
  --text:#171320;
  --text-2:#4A4458;
  --line:#171320;
  --lip:#171320;
  --red:#E3122F;
  --red-lo:#99091F;
  --red-text:#C20E28;
  --lime:#CBE45A;
  --lime-soft:#E9F3C2;
  --rose-soft:#FFE0E4;
  --ok:#17713A;
  --night:#171320;
  --night-2:#211B2E;
  --plum:#2D1F50;
  --pumpkin:#FF8A1F;
  --focus:#171320;
  --input-line:#171320;
  --phone:#0E0B14;
  --display:"Bowlby One","Arial Black",Impact,system-ui,sans-serif;
  --ui:"Figtree",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --gutter:clamp(16px,4.2vw,48px);
  --maxw:1180px;
}
@media (prefers-color-scheme:dark){
  :root{
    --paper:#171320;
    --paper-2:#1D1828;
    --card:#241D32;
    --text:#F4EEE3;
    --text-2:#C3BAD2;
    --line:#06040B;
    --lip:#06040B;
    --red-text:#FF6175;
    --lime-soft:#2A3214;
    --rose-soft:#3B1520;
    --ok:#CBE45A;
    --focus:#CBE45A;
    --input-line:#8A80A0;
    --phone:#08060C;
  }
}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--paper);color:var(--text);font:400 18px/1.6 var(--ui);-webkit-font-smoothing:antialiased;overflow-x:clip;min-height:100vh;display:flex;flex-direction:column}
main{flex:1 0 auto}
img,svg{display:block;max-width:100%}
img{height:auto}
h1,h2,h3,h4{margin:0;font-weight:400;line-height:1.05;text-wrap:balance}
p,figure{margin:0}
p,li{text-wrap:pretty}
a{color:inherit;text-decoration-thickness:2px;text-underline-offset:3px}
a:hover{text-decoration-color:var(--red)}
b,strong{font-weight:800}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:6px}
::selection{background:var(--lime);color:#171320}

.wrap{width:min(100% - 2 * var(--gutter),var(--maxw));margin-inline:auto}
.vh{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.skip{position:absolute;left:12px;top:-80px;z-index:50;padding:12px 18px;border:3px solid var(--line);border-radius:12px;background:var(--lime);color:#171320;font-weight:800;text-decoration:none}
.skip:focus{top:12px}

/* ---------- the header ---------- */
.top{position:relative;z-index:5}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:72px}
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font:400 21px/1 var(--display);letter-spacing:.005em;white-space:nowrap}
.brand img{width:40px;height:40px;border-radius:11px;border:2.5px solid var(--line);box-shadow:0 3px 0 var(--line)}
.nav{display:flex;align-items:center;gap:6px}
.nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;border-radius:999px;font:800 15px/1 var(--ui);text-decoration:none;white-space:nowrap}
.nav a:hover{background:var(--paper-2)}
.nav a[aria-current="page"]{text-decoration:underline;text-decoration-color:var(--red);text-decoration-thickness:3px}
.nav .pill{border:2.5px solid var(--line);background:var(--card);box-shadow:0 3px 0 var(--line);margin-left:6px}
.nav .pill:hover{background:var(--lime);color:#171320}
.nav .anchor{display:none}
@media (max-width:400px){.nav a:not(.pill){display:none}} /* (on a small phone the brand is the way home) */
@media (min-width:980px){.nav .anchor{display:inline-flex}}

/* ---------- buttons: chunky, with the game's darker bottom edge ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:58px;padding:8px 26px 10px;border:3px solid var(--line);border-radius:18px;background:var(--red);color:#fff;font:400 19px/1.1 var(--display);letter-spacing:.01em;text-align:center;text-decoration:none;cursor:pointer;box-shadow:inset 0 -5px 0 rgba(0,0,0,.2),inset 0 3px 0 rgba(255,255,255,.28),0 5px 0 var(--lip);transition:transform .08s ease,box-shadow .08s ease,filter .15s}
.btn:hover{color:#fff;transform:translateY(-1px);box-shadow:inset 0 -5px 0 rgba(0,0,0,.2),inset 0 3px 0 rgba(255,255,255,.28),0 6px 0 var(--lip)}
.btn:active{transform:translateY(4px);box-shadow:inset 0 -3px 0 rgba(0,0,0,.2),inset 0 3px 0 rgba(255,255,255,.28),0 1px 0 var(--lip)}
.btn[aria-disabled="true"]{cursor:not-allowed;filter:saturate(.55) brightness(.92);transform:none;box-shadow:inset 0 -5px 0 rgba(0,0,0,.2),inset 0 3px 0 rgba(255,255,255,.2),0 5px 0 var(--lip)}
.btn-2{background:var(--card);color:var(--text);box-shadow:inset 0 -4px 0 rgba(23,19,32,.08),0 5px 0 var(--lip)}
.btn-2:hover{color:var(--text);background:var(--lime);color:#171320}
.btn-sm{min-height:48px;padding:4px 16px 6px;border-radius:14px;font:800 16px/1 var(--ui);letter-spacing:0}
.btn-full{width:100%;padding-inline:14px;font-size:18px}

/* the App Store button: "Coming soon" until js/config.js has the link */
.store{gap:14px;padding:10px 24px 12px 18px;text-align:left}
.store .store-ico{width:34px;height:34px;flex:none}
.store .store-txt{display:flex;flex-direction:column;gap:3px}
.store .store-small{font:800 12px/1 var(--ui);letter-spacing:.12em;text-transform:uppercase;opacity:.92}
.store .store-big{font:400 23px/1 var(--display)}
.store.is-soon{cursor:default}
.store.is-soon:hover{transform:none;box-shadow:inset 0 -5px 0 rgba(0,0,0,.2),inset 0 3px 0 rgba(255,255,255,.28),0 5px 0 var(--lip)}

/* ---------- type ---------- */
.eyebrow{font:800 13px/1.2 var(--ui);letter-spacing:.16em;text-transform:uppercase;color:var(--red-text)}
.h2{font:400 clamp(34px,6.4vw,60px)/1 var(--display);letter-spacing:-.005em}
.h3{font:400 23px/1.1 var(--display)}
.lede{font:600 clamp(19px,2.2vw,23px)/1.45 var(--ui);color:var(--text-2)}
.sec{padding-block:clamp(64px,9vw,120px)}
.sec-head{display:grid;gap:14px;max-width:760px;margin-bottom:clamp(30px,4.5vw,52px)}
.sec-head .lede{max-width:62ch}
.center{text-align:center;margin-inline:auto;justify-items:center}

/* ---------- phones: a screenshot in a frame ---------- */
.phone{position:relative;width:var(--pw,240px);flex:none;padding:calc(var(--pw,240px) * .032);border-radius:calc(var(--pw,240px) * .16);background:var(--phone);box-shadow:inset 0 0 0 2px #2D2638,0 calc(var(--pw,240px) * .03) 0 var(--lip),0 28px 50px -24px rgba(23,19,32,.55)}
.phone img{width:100%;aspect-ratio:720/1558;object-fit:cover;border-radius:calc(var(--pw,240px) * .13);background:#2a2433}
.phone::after{content:"";position:absolute;top:calc(var(--pw,240px) * .062);left:50%;width:30%;height:calc(var(--pw,240px) * .082);transform:translateX(-50%);border-radius:999px;background:var(--phone)}
.phone.wide{width:100%;max-width:var(--ww,720px);padding:calc(var(--ww,720px) * .014);border-radius:calc(var(--ww,720px) * .06)}
.phone.wide img{aspect-ratio:1600/739;border-radius:calc(var(--ww,720px) * .048)}
.phone.wide::after{top:50%;left:calc(var(--ww,720px) * .027);width:calc(var(--ww,720px) * .036);height:28%;transform:translateY(-50%)}
@media (prefers-color-scheme:dark){.phone{box-shadow:inset 0 0 0 2px #3A3150,0 0 0 1.5px #3A3150,0 calc(var(--pw,240px) * .03) 0 #000,0 28px 50px -24px #000}}

/* ---------- the hero ---------- */
.hero{position:relative;padding:clamp(8px,2vw,24px) 0 clamp(36px,6vw,96px);overflow:hidden}
.hero .wrap{display:grid;gap:clamp(36px,5vw,56px);align-items:center}
.hero-copy{display:grid;justify-items:center;text-align:center;gap:18px;position:relative;z-index:2}
.hero h1{width:min(100%,560px);margin:2px 0 0}
.hero h1 img{width:100%}
.hero .lede{max-width:28ch;color:var(--text)}
.hero .fine{font:700 15px/1.4 var(--ui);color:var(--text-2)}
.hero-art{position:relative;height:clamp(430px,112vw,560px);display:flex;justify-content:center;align-items:flex-start}
.hero-art::before{content:"";position:absolute;inset:-6% -30% -14%;background:url(../img/splat.svg) center/contain no-repeat;opacity:.95}
.hero-art::after{content:"";position:absolute;width:140px;height:140px;right:4%;top:2%;background:url(../img/splat-lime.svg) center/contain no-repeat;transform:rotate(25deg)}
.hero-art .phone{position:absolute;--pw:clamp(170px,46vw,236px)}
.hero-art .p-back{transform:translate(-31%,4%) rotate(-7deg)}
.hero-art .p-front{transform:translate(31%,10%) rotate(6deg);z-index:1}
@media (min-width:920px){
  .hero{padding:24px 0 72px}
  .hero-copy{padding-top:8px}
  .hero .wrap{grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr)}
  .hero-copy{justify-items:start;text-align:left}
  .hero-art{height:640px}
  .hero-art .phone{--pw:270px}
}

/* the band of paint drips at the top of a dark section */
.drips{position:relative}
.drips::before{content:"";position:absolute;left:0;right:0;top:-1px;height:clamp(40px,5vw,64px);background:url(../img/drips.svg) left top/clamp(240px,30vw,400px) 100% repeat-x;pointer-events:none}

/* ---------- how it plays ---------- */
.play-grid{display:grid;gap:clamp(28px,4vw,48px);grid-template-areas:"head" "fig" "feats"}
.play-grid .sec-head{grid-area:head;margin-bottom:0}
.play-side{grid-area:fig}
.feats{grid-area:feats;display:grid;gap:16px;list-style:none;margin:0;padding:0}
@media (min-width:640px){.feats{grid-template-columns:1fr 1fr}}
@media (min-width:1040px){.play-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"head fig" "feats feats";align-items:center;column-gap:56px}.feats{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:8px}}
.feat{display:grid;grid-template-columns:84px minmax(0,1fr);gap:14px;align-items:start;padding:16px;border:3px solid var(--line);border-radius:20px;background:var(--card);box-shadow:0 5px 0 var(--lip)}
.feat h3{font:400 19px/1.1 var(--display);margin:4px 0 6px}
.feat p{font-size:16px;line-height:1.5;color:var(--text-2)}
.pic{position:relative;width:84px;aspect-ratio:1;border-radius:14px;background:#171320;overflow:hidden;color:var(--pc,#E3122F)}
.pic .blob{position:absolute;left:6%;top:6%;width:88%;height:80%}
.pic .glyph{position:absolute;left:50%;top:44%;width:44%;height:44%;transform:translate(-50%,-50%);color:#fff}
.pic .cap{position:absolute;left:8px;bottom:6px;font:800 9px/1 var(--ui);letter-spacing:.14em;text-transform:uppercase;color:#F4EEE3}
.p-blue{--pc:#2E9BFF}.p-orange{--pc:#F29A3A}.p-purple{--pc:#C77DFF}.p-green{--pc:#2ECC71}
.play-side{display:grid;gap:18px;justify-items:center}
.play-side .phone.wide{--ww:600px}
.cap-note{font:600 15px/1.45 var(--ui);color:var(--text-2);text-align:center;max-width:46ch}

/* ---------- dark sections ---------- */
.dark{background:var(--night);color:#F4EEE3;--text:#F4EEE3;--text-2:#C9C0D8;--card:#231C31;--line:#05030A;--lip:#05030A;--red-text:#FF6175;--focus:#CBE45A;--paper-2:#2A2238}
@media (prefers-color-scheme:dark){.dark{background:#0E0B15}}
.dark a:hover{text-decoration-color:var(--lime)}

/* ---------- modes ---------- */
.modes{display:grid;gap:18px;list-style:none;margin:0;padding:0}
@media (min-width:700px){.modes{grid-template-columns:1fr 1fr}}
.mode{position:relative;display:grid;gap:10px;align-content:start;padding:24px 22px 22px;border:3px solid var(--line);border-radius:22px;background:var(--card);box-shadow:0 6px 0 var(--lip)}
.mode .tag{justify-self:start;padding:6px 10px;border-radius:8px;background:var(--mc,#E3122F);color:#fff;font:800 12px/1 var(--ui);letter-spacing:.12em;text-transform:uppercase}
.mode h3{font:400 clamp(24px,3vw,30px)/1.05 var(--display)}
.mode p{color:var(--text-2);font-size:17px;line-height:1.5}
.mode .chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px;padding:0;list-style:none}
.mode .chips li{padding:6px 11px;border:2px solid #4A4060;border-radius:999px;font:700 14px/1 var(--ui);color:#E9E2F2}
.m-lime{--mc:#5E7A0F}.m-blue{--mc:#1F6FD1}.m-orange{--mc:#B34E00}
.modes-shot{margin-top:clamp(28px,4vw,44px);display:grid;justify-items:center;gap:14px}
.modes-shot .phone.wide{--ww:900px}
.dark .cap-note{color:#C9C0D8}

/* ---------- the Paint Shop and Strokes ---------- */
.yours{display:grid;gap:clamp(40px,6vw,72px)}
.duo{display:grid;gap:clamp(28px,4vw,48px);align-items:center}
@media (min-width:960px){.duo{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.duo.flip .duo-art{order:-1}}
.duo-copy{display:grid;gap:16px;align-content:start}
.duo-copy p{color:var(--text-2)}
.duo-art{position:relative;display:flex;justify-content:center;gap:16px;padding:10px 0 18px;container-type:inline-size}
.duo-art .phone{--pw:min(256px,calc(50cqi - 14px))}
.duo-art .phone:only-child{--pw:min(256px,62cqi)}
.duo-art .phone:first-child{transform:rotate(-3deg) translateY(10px)}
.duo-art .phone:last-child{transform:rotate(3deg)}
.duo-art .phone:only-child{transform:rotate(2deg)}
.ticks{display:grid;gap:10px;margin:4px 0 0;padding:0;list-style:none}
.ticks li{position:relative;padding-left:34px;color:var(--text)}
.ticks li::before{content:"";position:absolute;left:0;top:.18em;width:22px;height:22px;border-radius:7px;background:var(--lime) url(../img/tick.svg) center/14px no-repeat;border:2px solid var(--line)}
.kits{display:grid;gap:20px;margin-top:6px}
.kit h4{font:800 13px/1.2 var(--ui);letter-spacing:.14em;text-transform:uppercase;color:var(--red-text);margin-bottom:10px}
.kit h4 span{color:var(--text-2);letter-spacing:.02em;text-transform:none;font-weight:600}
.kit ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:10px;margin:0;padding:0;list-style:none}
.kit li{display:grid;justify-items:center;gap:6px;padding:10px 6px 12px;border:2.5px solid var(--line);border-radius:16px;background:var(--card);box-shadow:0 4px 0 var(--lip);text-align:center;font:800 14px/1.15 var(--ui)}
.kit li img{width:64px;height:64px}

/* ---------- canvases and seasons ---------- */
.canvases{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(20px,3vw,30px);list-style:none;margin:0;padding:0}
@media (min-width:600px){.canvases{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1100px){.canvases{grid-template-columns:repeat(4,minmax(0,1fr))}}
.canvas{display:grid;justify-items:center;gap:0}
.canvas .frame{width:100%;padding:8px;border:7px solid #2B2237;border-radius:6px;background:#FFFDF8;box-shadow:0 6px 0 var(--lip),0 20px 34px -22px rgba(23,19,32,.6)}
.canvas .frame img{width:100%;aspect-ratio:720/495;object-fit:cover;border:2px solid #2B2237}
.plaque{margin-top:-14px;position:relative;padding:8px 16px;border:2.5px solid var(--line);border-radius:10px;background:var(--card);box-shadow:0 3px 0 var(--lip);font:400 17px/1 var(--display);white-space:nowrap}
.season{position:relative;margin-top:clamp(40px,6vw,64px);padding:clamp(24px,4vw,44px);border:3px solid #05030A;border-radius:28px;background:radial-gradient(120% 90% at 85% 0%,#4A2C7A 0%,rgba(74,44,122,0) 60%),linear-gradient(160deg,#2D1F50 0%,#160D2C 100%);color:#F6EEDF;box-shadow:0 7px 0 #05030A;overflow:hidden}
.season::after{content:"";position:absolute;right:-46px;top:-46px;width:140px;height:140px;border-radius:50%;background:radial-gradient(circle at 40% 40%,#FFB45C,#FF8A1F 55%,#C4560A);opacity:.9;box-shadow:0 0 80px 10px rgba(255,138,31,.35)}
.season-head{position:relative;z-index:1;display:grid;gap:12px;max-width:640px;margin-bottom:26px}
@media (min-width:1180px){.season::after{right:-50px;top:-70px;width:240px;height:240px}}
.season .ribbon{justify-self:start;padding:6px 12px;border-radius:8px;background:var(--pumpkin);color:#1A0E00;font:800 13px/1 var(--ui);letter-spacing:.14em;text-transform:uppercase}
.season h3{font:400 clamp(30px,5vw,48px)/1 var(--display);color:#FFF6E5}
.season p{color:#DCD2EC}
.season .canvases{position:relative;z-index:1}
@media (min-width:640px){.season .canvases{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.season .plaque{font-size:15px;padding:7px 12px}}
.season .canvas .frame{border-color:#0B0614;background:#F6EEDF;box-shadow:0 6px 0 #05030A}
.season .canvas .frame img{aspect-ratio:440/302;border-color:#0B0614}
.season .plaque{background:#FFF6E5;color:#171320;border-color:#05030A;box-shadow:0 3px 0 #05030A}
@media (min-width:1180px){.season{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:36px;align-items:center}.season-head{margin-bottom:0}}

/* ---------- the strip of screenshots ---------- */
.strip{display:flex;gap:22px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;margin:0 calc(-1 * var(--gutter));padding:10px var(--gutter) 30px;list-style:none;scrollbar-width:thin}
.strip li{flex:none;display:grid;justify-items:center;gap:14px;scroll-snap-align:center}
.strip .phone{--pw:212px}
.strip figcaption,.strip .shot-cap{font:800 15px/1.2 var(--ui);text-align:center}
.strip figure{margin:0;display:grid;justify-items:center;gap:14px}
@media (min-width:1180px){
  .strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));overflow:visible;margin:0;padding:10px 0 20px}
  .strip .phone{--pw:172px}
  .strip li:nth-child(odd) .phone{transform:rotate(-2deg)}
  .strip li:nth-child(even) .phone{transform:rotate(2deg) translateY(12px)}
}
.strip-hint{font:700 14px/1.2 var(--ui);color:var(--text-2);text-align:center;margin-top:-4px}
@media (min-width:1180px){.strip-hint{display:none}}

/* ---------- Ol' Bloop and the last call ---------- */
.bloop{display:grid;gap:28px;align-items:center;justify-items:center;text-align:center}
@media (min-width:860px){.bloop{grid-template-columns:auto minmax(0,560px);justify-content:center;text-align:left;justify-items:start}}
.bloop-art{position:relative;width:min(78vw,300px)}
.bloop-art img{width:100%}
.bubble{position:relative;display:inline-block;padding:14px 18px;border:3px solid var(--line);border-radius:18px;background:var(--card);box-shadow:0 5px 0 var(--lip);font:400 clamp(20px,2.6vw,26px)/1.15 var(--display)}
.bubble::after{content:"";position:absolute;left:calc(50% - 11px);top:-14px;width:22px;height:22px;background:var(--card);border-left:3px solid var(--line);border-top:3px solid var(--line);transform:rotate(45deg)}
@media (min-width:860px){.bubble::after{left:-14px;top:calc(50% - 11px);border-top:0;border-bottom:3px solid var(--line)}}
.bloop-copy{display:grid;gap:16px;justify-items:inherit}
.bloop-copy .who{font:800 14px/1 var(--ui);letter-spacing:.14em;text-transform:uppercase;color:var(--text-2)}

/* ---------- the footer ---------- */
.foot{margin-top:auto;padding:clamp(40px,6vw,64px) 0 calc(40px + env(safe-area-inset-bottom,0px));background:#171320;color:#F4EEE3;--focus:#CBE45A}
@media (prefers-color-scheme:dark){.foot{background:#0E0B15;border-top:2px solid #2A2238}}
.foot .wrap{display:grid;gap:22px}
@media (min-width:820px){.foot .wrap{grid-template-columns:auto 1fr;align-items:center}}
.foot-brand{display:flex;align-items:center;gap:12px;font:400 20px/1 var(--display)}
.foot-brand img{width:44px;height:44px;border-radius:12px;border:2px solid #05030A}
.foot-brand small{display:block;margin-top:6px;font:800 12px/1 var(--ui);letter-spacing:.16em;text-transform:uppercase;color:#CBE45A}
.foot nav ul{display:flex;flex-wrap:wrap;gap:6px 4px;margin:0;padding:0;list-style:none}
@media (min-width:820px){.foot nav ul{justify-content:flex-end}}
.foot nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;border-radius:999px;font:700 16px/1 var(--ui);text-decoration:none}
.foot nav a:hover{background:#2A2238}
.foot .legal{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:space-between;padding-top:20px;border-top:2px solid #2A2238;font:600 14px/1.5 var(--ui);color:#B9AFCB}

/* ---------- pages of words: privacy, terms, credits, support ---------- */
.page{padding:clamp(20px,4vw,48px) 0 clamp(64px,8vw,104px)}
.doc{max-width:720px;margin-inline:auto}
.doc-head{display:grid;gap:12px;margin-bottom:clamp(26px,4vw,40px);padding-bottom:22px;border-bottom:3px solid var(--line)}
.doc-head h1{font:400 clamp(38px,7vw,64px)/1 var(--display)}
.doc-head p{color:var(--text-2);font-weight:600}
.prose h2{font:400 clamp(22px,3vw,26px)/1.15 var(--display);margin:1.9em 0 .55em}
.prose h3{font:800 19px/1.3 var(--ui);margin:1.6em 0 .4em}
.prose p{margin:0 0 1em}
.prose > :first-child{margin-top:0}
.prose a{font-weight:700;color:var(--red-text)}
.note{margin:0 0 1.2em;padding:14px 16px 14px 18px;border:2.5px solid var(--line);border-left-width:8px;border-left-color:#8FB52A;border-radius:14px;background:var(--lime-soft);font-size:16.5px;line-height:1.5}
.note b{display:block;font:800 12px/1.2 var(--ui);letter-spacing:.14em;text-transform:uppercase;margin-bottom:4px}
.aside{margin-top:clamp(36px,5vw,52px);padding:20px 22px;border:3px solid var(--line);border-radius:20px;background:var(--card);box-shadow:0 5px 0 var(--lip)}
.aside h2{margin:0 0 8px;font:400 22px/1.15 var(--display)}
.aside p{color:var(--text-2)}
.ask{margin-top:clamp(32px,5vw,48px);font-weight:600}

/* support */
.reach{display:grid;gap:12px;margin-bottom:clamp(30px,5vw,48px);padding:clamp(20px,3vw,28px);border:3px solid var(--line);border-radius:22px;background:var(--card);box-shadow:0 6px 0 var(--lip)}
.reach .mail{font:800 clamp(19px,5.2vw,30px)/1.2 var(--ui);color:var(--red-text);overflow-wrap:anywhere;text-decoration-thickness:3px}
.faq{display:grid;gap:16px;margin:0;padding:0;list-style:none}
.faq li{padding:20px 22px;border:3px solid var(--line);border-radius:20px;background:var(--card);box-shadow:0 5px 0 var(--lip)}
.faq-title{font:400 clamp(26px,4vw,32px)/1.1 var(--display);margin:0 0 18px}
.faq h3{font:400 21px/1.15 var(--display);margin:0 0 8px}
.faq p{color:var(--text-2);font-size:17px;line-height:1.55}
.faq p + p{margin-top:8px}
.path{font-weight:800;color:var(--text);white-space:nowrap}

/* ---------- the account pages: forgot, reset, confirm ---------- */
.acct{max-width:520px;margin-inline:auto}
.acct-card{display:grid;gap:18px;padding:clamp(22px,5vw,34px);border:3px solid var(--line);border-radius:26px;background:var(--card);box-shadow:0 7px 0 var(--lip)}
.acct-card h1{font:400 clamp(30px,7.4vw,42px)/1.02 var(--display)}
.acct-card > p{color:var(--text-2)}
.acct-logo{width:min(64vw,250px);margin:0 auto clamp(18px,3vw,26px)}
.form{display:grid;gap:16px}
.field{display:grid;gap:8px}
.field label{font:800 16px/1.2 var(--ui)}
.input{width:100%;min-height:54px;padding:0 16px;border:3px solid var(--input-line);border-radius:14px;background:var(--paper);color:var(--text);font:600 18px/1 var(--ui);box-shadow:inset 0 3px 0 rgba(23,19,32,.07)}
.input::placeholder{color:#8A8299;opacity:1}
.input:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.input[aria-invalid="true"]{border-color:var(--red-text)}
.pwrow{display:flex;gap:10px}
.pwrow .input{flex:1;min-width:0}
.pwrow .btn-sm{flex:none;min-width:84px}
.err{color:var(--red-text);font:700 16px/1.4 var(--ui)}
.hints{display:grid;gap:6px;margin:0;padding:12px 14px;border-radius:14px;background:var(--paper-2);list-style:none;font:600 15.5px/1.35 var(--ui);color:var(--text-2)}
.hints li{position:relative;padding-left:30px}
.hints li::before{content:"";position:absolute;left:0;top:-1px;width:20px;height:20px;border:2.5px solid currentColor;border-radius:50%;opacity:.7}
.hints li.met{color:var(--ok)}
.hints li.met::before{opacity:1;border-color:var(--line);background:var(--lime) url(../img/tick.svg) center/12px no-repeat}
.msg{display:grid;gap:10px;padding:16px 18px;border:3px solid var(--line);border-radius:18px;box-shadow:0 4px 0 var(--lip);font:600 17.5px/1.45 var(--ui)}
.msg:focus{outline:none}
.msg:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.msg-ok{background:var(--lime-soft)}
.msg-bad{background:var(--rose-soft)}
.msg-info{background:var(--paper-2)}
.msg-link{justify-self:start;font-weight:800;color:var(--red-text)}
.done{display:grid;gap:14px;justify-items:center;text-align:center}
.done:focus{outline:none}
.done img{width:min(52vw,190px)}
.done p{font:600 19px/1.45 var(--ui)}
.wait{display:flex;align-items:center;gap:12px;font:700 18px/1.3 var(--ui)}
.dot3{display:inline-flex;gap:5px}
.dot3 i{width:10px;height:10px;border-radius:50%;background:var(--red);animation:bob 1s infinite ease-in-out}
.dot3 i:nth-child(2){animation-delay:.15s;background:#2E9BFF}
.dot3 i:nth-child(3){animation-delay:.3s;background:#2ECC71}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.no-token .when-token,.has-token .when-no-token{display:none}
.out{display:grid;gap:16px;align-content:start;min-height:142px}
.out .btn-sm{justify-self:start}
.small-links{display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:center;margin-top:22px;font:700 16px/1.4 var(--ui)}
.noscript{padding:14px 16px;border:3px solid var(--line);border-radius:14px;background:var(--rose-soft);font-weight:700}

/* ---------- 404 ---------- */
.lost{display:grid;gap:18px;justify-items:center;text-align:center;max-width:620px;margin-inline:auto}
.lost h1{font:400 clamp(40px,9vw,72px)/1 var(--display)}
.lost img{width:min(60vw,260px)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
}
