/* Fliro landing (madenlabsapp.com/fliro/, /fliro/en). From the Claude Design "Landing Page".
   Tokens = DesignSystem Palette. Fonts self-hosted (Archivo instances from the app, SIL OFL), no
   third-party requests. Legal pages keep using styles.css. */

@font-face{font-family:'Archivo';src:url(fonts/ArchivoW100-Medium.woff2) format('woff2');font-weight:400 500;font-stretch:100%;font-display:swap}
@font-face{font-family:'Archivo';src:url(fonts/ArchivoW100-SemiBold.woff2) format('woff2');font-weight:600;font-stretch:100%;font-display:swap}
@font-face{font-family:'Archivo';src:url(fonts/ArchivoW100-Bold.woff2) format('woff2');font-weight:700;font-stretch:100%;font-display:swap}
@font-face{font-family:'Archivo';src:url(fonts/ArchivoW100-ExtraBold.woff2) format('woff2');font-weight:800;font-stretch:100%;font-display:swap}
@font-face{font-family:'Archivo';src:url(fonts/ArchivoW110-Black.woff2) format('woff2');font-weight:900;font-stretch:100% 112%;font-display:swap}
@font-face{font-family:'Archivo';src:url(fonts/ArchivoW115-ExtraBold.woff2) format('woff2');font-weight:800;font-stretch:113% 120%;font-display:swap}
@font-face{font-family:'Archivo';src:url(fonts/ArchivoW115-Black.woff2) format('woff2');font-weight:900;font-stretch:113% 120%;font-display:swap}
@font-face{font-family:'Archivo';src:url(fonts/ArchivoW125-Black.woff2) format('woff2');font-weight:800 900;font-stretch:121% 125%;font-display:swap}

:root{
  --bg:#F7F6F2;--surface:#FFFFFF;--ink:#111111;--ink2:#5E5D58;--line:rgba(17,17,17,.12);--inv-bg:#111111;--inv-fg:#F7F6F2;
  --wrong:#D23B3B;--skel:rgba(17,17,17,.07);--hud-idle:rgba(247,246,242,.35);
  --f-numbers:#FF6A2B;--f-logic:#7B95FF;--f-memory:#FF8FC0;--f-speed:#FFD12E;--f-spatial:#2ECC8F;
  --stroop-blue:#4D67DB;--stroop-orange:#C9431A;
  --mono:ui-monospace,'SF Mono',SFMono-Regular,Menlo,Consolas,monospace;
  --pad:clamp(16px,4vw,48px);
  color-scheme:light;
}
:root[data-theme=dark]{
  --bg:#0F0F0E;--surface:#1C1C1A;--ink:#F4F3EE;--ink2:#A3A19A;--line:rgba(255,255,255,.14);--inv-bg:#F4F3EE;--inv-fg:#111111;
  --wrong:#FF6B6B;--skel:rgba(255,255,255,.08);--hud-idle:rgba(17,17,17,.3);
  --f-numbers:#4A1E0D;--f-logic:#1E2757;--f-memory:#4D1D35;--f-speed:#3F3200;--f-spatial:#0B3D2A;
  --stroop-blue:#7B95FF;--stroop-orange:#FF6A2B;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{margin:0;background:var(--bg);color:var(--ink);font-family:'Archivo',system-ui,sans-serif;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;transition:background .3s,color .3s}
a{color:inherit}
a:hover{color:var(--stroop-blue)}
button{font-family:inherit}
:focus-visible{outline:3px solid var(--stroop-blue);outline-offset:3px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.mono{font:600 13px var(--mono);letter-spacing:.1em}
.wrap{max-width:1280px;margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}

@keyframes kBar{0%,100%{transform:scaleY(.3)}45%,60%{transform:scaleY(1)}}
@keyframes kSlide{0%,100%{transform:translateX(18px)}45%,60%{transform:translateX(-6px)}}
@keyframes kBlink{0%,100%{opacity:.18}12%,40%{opacity:1}}
@keyframes kStreak{0%{transform:translateX(-70px);opacity:0}25%,70%{opacity:1}100%{transform:translateX(50px);opacity:0}}
@keyframes kBob{0%,100%{transform:translateY(-10px)}50%{transform:translateY(2px)}}
@keyframes kDrain{0%{height:100%}100%{height:0%}}

/* Header */
.top{position:sticky;top:0;z-index:40;background:var(--bg);border-bottom:1.5px solid var(--line);transition:background .3s}
.top .wrap{padding-top:14px;padding-bottom:14px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.logo{font-weight:900;font-stretch:125%;font-size:26px;letter-spacing:-.03em;text-decoration:none;color:var(--ink)}
.top-actions{display:flex;align-items:center;gap:10px}
.pill{height:44px;padding:0 16px;border-radius:999px;border:1.5px solid var(--line);background:transparent;color:var(--ink);font-weight:700;font-size:15px;cursor:pointer;display:flex;align-items:center;gap:8px;text-decoration:none}
.pill.dark{border:0;background:var(--inv-bg);color:var(--inv-fg);font-weight:800;padding:0 18px}
.pill.dark:hover{color:var(--inv-fg);opacity:.9}
.theme-dot{width:14px;height:14px;border-radius:50%;border:2px solid var(--ink);background:linear-gradient(90deg,var(--ink) 50%,transparent 50%)}
.theme-btn{display:none}
.js .theme-btn{display:flex}

/* Hero */
.hero{padding-top:clamp(48px,8vw,104px);padding-bottom:40px;display:flex;flex-direction:column;gap:40px}
.hero h1{margin:0;font-weight:900;font-stretch:125%;font-size:clamp(40px,9vw,128px);line-height:.92;letter-spacing:-.035em;max-width:11ch;text-wrap:balance;overflow-wrap:break-word}
.hero-row{display:flex;flex-wrap:wrap;gap:32px;align-items:flex-end;justify-content:space-between}
.hero-row p{margin:0;max-width:560px;font-size:clamp(18px,1.6vw,21px);line-height:1.5;text-wrap:pretty}
.big-cta{min-height:64px;padding:0 28px;border-radius:22px;background:var(--inv-bg);color:var(--inv-fg);font-weight:800;font-stretch:115%;font-size:20px;text-decoration:none;display:flex;align-items:center;gap:12px}
.big-cta:hover{color:var(--inv-fg);opacity:.92}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.tile{height:210px;border-radius:24px;position:relative;overflow:hidden;color:#111;text-decoration:none;display:flex;flex-direction:column;justify-content:space-between;padding:16px 18px}
.tile:hover{color:#111}
.tile .nm{position:relative;font-weight:800;font-size:17px}
.tile .vl{position:relative;display:flex;flex-direction:column;gap:2px}
.tile .vl b{font-weight:900;font-stretch:115%;font-size:32px}
.tile .vl small{font:600 11px var(--mono);letter-spacing:.06em}
.c-numbers{background:#FF6A2B}.c-logic{background:#7B95FF}.c-memory{background:#FF8FC0}.c-speed{background:#FFD12E}.c-spatial{background:#2ECC8F}
.art{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}

/* Puzzles */
.q{padding:24px var(--pad)}
.qcard{position:relative;max-width:1280px;margin:0 auto;min-height:min(720px,86vh);border-radius:36px;overflow:hidden;border:1.5px solid var(--line);display:flex}
.drain{position:absolute;left:0;right:0;bottom:0;height:100%;transition:height .25s ease}
.qcard[data-k=numbers] .drain{background:var(--f-numbers)}.qcard[data-k=logic] .drain{background:var(--f-logic)}.qcard[data-k=memory] .drain{background:var(--f-memory)}.qcard[data-k=speed] .drain{background:var(--f-speed)}.qcard[data-k=spatial] .drain{background:var(--f-spatial)}
.qin{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;justify-content:space-between;gap:40px;padding:clamp(24px,4vw,56px)}
.qhead{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
.qhead>div:first-child{display:flex;flex-direction:column;gap:8px}
.qsub{font-size:17px;font-weight:600}
.qart{position:relative;width:112px;height:112px;flex:none}
.qprompt{display:flex;flex-direction:column;gap:14px}
.qprompt .ask{font-size:22px;font-weight:700}
.qprompt .big{font-weight:900;font-stretch:110%;font-size:clamp(44px,8vw,104px);line-height:1;letter-spacing:-.02em;text-wrap:balance}
.qprompt .big.mid{font-size:clamp(40px,6.5vw,84px)}
.qfoot{display:flex;flex-direction:column;gap:20px}
.opts{display:flex;flex-wrap:wrap;gap:12px}
.opt{min-width:128px;height:104px;padding:0 28px;border-radius:24px;background:var(--surface);color:var(--ink);border:2px solid var(--line);font-weight:900;font-stretch:115%;font-size:48px;display:flex;align-items:center;justify-content:center;gap:10px;cursor:default}
.opt .mark{font-size:24px}
.opts.w2 .opt{min-width:160px;padding:0 32px;font-size:44px}
.opts.w3 .opt{min-width:180px;padding:0 32px;font-size:40px}
.live .opt{cursor:pointer}
.opt.right{background:var(--inv-bg);color:var(--inv-fg);border-color:var(--inv-bg)}
.opt.wrongpick{border-color:var(--wrong)}
.qbar{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;min-height:48px}
.qbar .msg{display:flex;flex-direction:column;gap:4px}
.status{font-weight:800;font-size:20px}
.why{font-size:16px}
.qact{display:flex;gap:8px}
.skip{height:48px;padding:0 18px;border-radius:16px;border:1.5px solid var(--ink);background:transparent;color:var(--ink);font-weight:700;font-size:16px;cursor:pointer}
.next{height:48px;padding:0 20px;border-radius:16px;background:var(--inv-bg);color:var(--inv-fg);font-weight:800;font-size:16px;text-decoration:none;display:flex;align-items:center;gap:8px}
.next:hover{color:var(--inv-fg);opacity:.92}
[hidden]{display:none!important}

.memrow{display:flex;flex-wrap:wrap;gap:32px;align-items:flex-end;justify-content:space-between}
.memrow .qprompt{max-width:620px}
.cells{background:var(--surface);border-radius:28px;padding:16px;display:grid;grid-template-columns:repeat(4,minmax(0,64px));gap:10px;width:min(100%,318px)}
.cell{aspect-ratio:1;border-radius:14px;background:var(--skel);border:2px solid transparent;cursor:default;padding:0}
.live .cell{cursor:pointer}
.cell.on{background:var(--ink)}
.cell.lit-missed{background:transparent;border-color:var(--ink)}
.cell.lit-hit{background:var(--ink);border-color:var(--ink)}
.cell.bad{border-color:var(--wrong)}

.stroop{display:inline-block;background:var(--surface);border-radius:28px;padding:18px clamp(18px,3vw,36px);font-weight:900;font-stretch:125%;font-size:clamp(34px,9.5vw,128px);line-height:1;letter-spacing:-.02em;color:var(--stroop-blue);max-width:100%}

.sprow{display:flex;flex-wrap:wrap;gap:32px;align-items:flex-end}
.sprow .qprompt{max-width:640px}
.shape{display:grid;grid-template-columns:repeat(3,44px);grid-auto-rows:44px;gap:6px;background:var(--surface);border-radius:28px;padding:22px}
.shape i{border-radius:8px}
.shape i.f{background:var(--ink)}
.spopt{width:150px;height:150px;border-radius:24px;background:var(--surface);color:var(--ink);border:2px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;cursor:default;padding:0}
.live .spopt{cursor:pointer}
.spopt .mini{display:grid;grid-template-columns:repeat(3,22px);grid-auto-rows:22px;gap:3px}
.spopt .mini i{border-radius:5px}
.spopt .mini i.f{background:var(--ink)}
.spopt.right .mini i.f{background:var(--inv-fg)}
.spopt.right{background:var(--inv-bg);color:var(--inv-fg);border-color:var(--inv-bg)}
.spopt.wrongpick{border-color:var(--wrong)}
.spopt .lbl{font-weight:900;font-size:20px}

/* Sections */
.sec{padding-top:clamp(48px,6vw,96px);padding-bottom:clamp(48px,6vw,96px);display:flex;flex-direction:column;gap:48px;border-top:1.5px solid var(--line)}
.sec .intro{display:flex;flex-direction:column;gap:20px}
.sec h2{margin:0;font-weight:900;font-stretch:125%;font-size:clamp(36px,6vw,80px);line-height:.95;letter-spacing:-.03em;text-wrap:balance}
.sec .lede{margin:0;max-width:600px;font-size:19px;line-height:1.5;text-wrap:pretty}
.example{font:600 11px var(--mono);letter-spacing:.08em;color:var(--ink2)}

#result{padding-top:clamp(64px,8vw,112px);padding-bottom:clamp(64px,8vw,112px);display:flex;flex-direction:column;gap:40px}
.res-incomplete{display:flex;flex-direction:column;gap:20px;align-items:flex-start}
.res-incomplete h2{margin:0;font-weight:900;font-stretch:125%;font-size:clamp(36px,6vw,80px);line-height:.95;letter-spacing:-.03em;text-wrap:balance}
.res-incomplete p{margin:0;font-size:20px;line-height:1.5}
.mid-cta{min-height:56px;padding:0 24px;border-radius:18px;background:var(--inv-bg);color:var(--inv-fg);font-weight:800;font-size:18px;text-decoration:none;display:flex;align-items:center}
.mid-cta:hover{color:var(--inv-fg);opacity:.92}
.res-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:clamp(32px,5vw,72px);align-items:end}
.res-grid .score{display:flex;flex-direction:column;gap:18px;container-type:inline-size;min-width:0}
.res-grid .score .k{font-size:22px;font-weight:700}
.res-num{font-weight:900;font-stretch:125%;font-size:clamp(88px,18vw,240px);font-size:clamp(56px,30cqi,240px);line-height:.82;letter-spacing:-.04em}
.tierline{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.tierchip{height:40px;padding:0 16px;border-radius:12px;font-weight:900;font-stretch:115%;font-size:18px;display:flex;align-items:center;color:#111}
.placeline{font-size:18px;font-weight:600}
.band{display:grid;grid-template-columns:28px minmax(0,1fr) auto 64px;gap:14px;align-items:center;padding:14px 0;border-top:1.5px solid var(--line)}
.band .sw{width:28px;height:28px;border-radius:8px}
.band .bn{font-weight:800;font-size:18px}
.band .bo{font-size:16px}
.band .bd{font-weight:900;font-size:20px;text-align:right}
.res-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.retake{height:64px;padding:0 24px;border-radius:22px;border:1.5px solid var(--ink);background:transparent;color:var(--ink);font-weight:700;font-size:18px;cursor:pointer}
.note{font-size:15px;color:var(--ink2)}

.league{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:40px;align-items:end}
.ladder{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;align-items:end;height:340px}
.ladder>div{display:flex;flex-direction:column;gap:8px;justify-content:flex-end;height:100%}
.ladder .you{font:600 11px var(--mono);letter-spacing:.06em;text-align:center;min-height:14px}
.ladder .bar{border-radius:14px;border:2px solid transparent}
.ladder .bar.me{border-color:var(--ink)}
.ladder .tn{font-weight:800;font-size:clamp(10px,2.7vw,14px);text-align:center;white-space:nowrap;letter-spacing:-.01em}
.rows{display:flex;flex-direction:column;gap:4px}
.rows .hd{display:flex;justify-content:space-between;font:600 12px var(--mono);letter-spacing:.06em;padding:0 16px 8px;gap:12px}
.lrow{display:grid;grid-template-columns:36px minmax(0,1fr) auto 20px;gap:12px;align-items:center;height:52px;padding:0 16px;border-radius:16px}
.lrow b{font-weight:800}
.lrow .n{font-weight:700;font-size:17px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lrow .r{font-weight:900;font-size:18px}
.lrow .z{font-size:12px}
.lrow.me{background:var(--inv-bg);color:var(--inv-fg)}

.boards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:24px}
.board{background:var(--surface);border-radius:28px;padding:24px;display:flex;flex-direction:column;gap:4px}
.board .hd{display:flex;justify-content:space-between;font:600 12px var(--mono);letter-spacing:.06em;padding-bottom:10px}
.brow{display:grid;grid-template-columns:32px minmax(0,1fr) 36px auto;gap:12px;align-items:center;height:48px;border-top:1.5px solid var(--line)}
.brow.nocc{grid-template-columns:32px minmax(0,1fr) auto}
.brow b{font-weight:800}.brow .n{font-weight:700;font-size:17px}.brow .cc{font:600 12px var(--mono)}.brow .r{font-weight:900;font-size:18px}

.phones{display:flex;flex-wrap:wrap;gap:32px;justify-content:center}
.phones figure{margin:0;display:flex;flex-direction:column;gap:16px;width:290px}
.phone{width:290px;height:600px;border-radius:46px;background:var(--bg);border:1.5px solid var(--line);box-shadow:0 40px 80px -40px rgba(0,0,0,.35);overflow:hidden;display:flex;flex-direction:column;gap:10px;padding:16px 14px 18px;position:relative}
.phone .sb{display:flex;justify-content:space-between;font-weight:700;font-size:13px;padding:0 12px;position:relative}
.phone .sb i{width:22px;height:11px;border-radius:3px;border:1.5px solid var(--ink)}
.phone figcaption,.phones figcaption{font-size:16px;line-height:1.45;text-wrap:pretty}
.ptiles{flex:1;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(3,minmax(0,1fr));gap:7px}
.ptile{border-radius:18px;position:relative;overflow:hidden;color:#111;padding:10px 12px;display:flex;flex-direction:column;justify-content:space-between}
.ptile span{position:relative;font-weight:800;font-size:12px}
.ptile b{position:relative;font-weight:900;font-stretch:115%;font-size:22px}
.ptile:nth-child(1){grid-area:1/1/2/3}
.pcta{height:54px;border-radius:18px;background:var(--inv-bg);color:var(--inv-fg);font-weight:800;font-stretch:115%;font-size:18px;display:flex;align-items:center;justify-content:center;flex:none}
.pdrain{position:absolute;left:0;right:0;bottom:0;background:var(--f-numbers);animation:kDrain 8s linear infinite}
.pans{display:grid;grid-template-columns:1fr 1fr;gap:7px;position:relative}
.pans div{height:76px;border-radius:18px;background:var(--surface);border:1.5px solid var(--line);font-weight:900;font-stretch:115%;font-size:30px;display:flex;align-items:center;justify-content:center}
.pband{display:grid;grid-template-columns:16px minmax(0,1fr) auto 40px;gap:10px;align-items:center;height:38px;border-top:1.5px solid var(--line);font-size:14px}
.pband i{width:16px;height:16px;border-radius:5px}

.prices{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:16px}
.price{border-radius:28px;border:1.5px solid var(--line);padding:28px;display:flex;flex-direction:column;gap:20px}
.price.pro{border:0;background:var(--inv-bg);color:var(--inv-fg)}
.price .pn{font-weight:800;font-size:20px}
.price .pv{font-weight:900;font-stretch:125%;font-size:56px;line-height:1}
.price ul{list-style:none;margin:0;padding:0;font-size:17px}
.price li{padding:12px 0;border-top:1.5px solid var(--line)}
.price.pro li{border-top-color:var(--hud-idle)}

.faqgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:48px}
.faq details{border-top:1.5px solid var(--line)}
.faq summary{min-height:68px;display:flex;justify-content:space-between;align-items:center;gap:16px;font-weight:800;font-size:20px;cursor:pointer;list-style:none;padding:8px 0}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';font-weight:400;font-size:28px;flex:none}
.faq details[open] summary::after{content:'−'}
.faq p{margin:0 0 22px;font-size:17px;line-height:1.55;max-width:600px;text-wrap:pretty}

#get{padding:24px var(--pad) 120px}
.get{max-width:1280px;margin:0 auto;border-radius:36px;background:var(--inv-bg);color:var(--inv-fg);padding:clamp(32px,6vw,80px);display:flex;flex-direction:column;gap:32px}
.get h2{margin:0;font-weight:900;font-stretch:125%;font-size:clamp(40px,7vw,96px);line-height:.92;letter-spacing:-.035em;max-width:12ch;text-wrap:balance}
.get-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.store{min-height:64px;padding:0 28px;border-radius:22px;background:var(--inv-fg);color:var(--inv-bg);font-weight:800;font-stretch:115%;font-size:20px;display:flex;align-items:center}
.foot{max-width:1280px;margin:32px auto 0;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;font-size:15px;color:var(--ink2)}
.foot .logo{font-size:20px}
.foot nav{display:flex;flex-wrap:wrap;gap:20px}
.foot a{color:var(--ink2)}

/* HUD */
.hud{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:50;background:var(--inv-bg);color:var(--inv-fg);border-radius:999px;padding:8px 8px 8px 20px;display:none;align-items:center;gap:16px;box-shadow:0 12px 32px -12px rgba(0,0,0,.4);max-width:calc(100vw - 24px)}
.js .hud{display:flex}
.hud .dots{display:flex;gap:5px}
.hud .dot{width:22px;height:22px;border-radius:6px;border:1.5px solid var(--hud-idle);color:#111;font-size:11px;font-weight:900;display:flex;align-items:center;justify-content:center;text-decoration:none}
.hud .prov{display:flex;flex-direction:column;line-height:1}
.hud .prov small{font:600 10px var(--mono);letter-spacing:.08em}
.hud .prov b{font-weight:900;font-stretch:115%;font-size:22px}
.hud .go{height:40px;padding:0 16px;border-radius:999px;background:var(--inv-fg);color:var(--inv-bg);font-weight:800;font-size:14px;text-decoration:none;display:flex;align-items:center;white-space:nowrap}
.hud .go:hover{color:var(--inv-bg)}

@media (max-width:480px){
  .top .wrap{gap:8px}
  .pill{padding:0 12px;font-size:14px}
  .opt{min-width:96px;height:88px;padding:0 18px;font-size:40px}
  .opts.w2 .opt,.opts.w3 .opt{min-width:120px;padding:0 20px;font-size:32px}
  .spopt{width:96px;height:120px}
  .spopt .mini{grid-template-columns:repeat(3,16px);grid-auto-rows:16px}
  .shape{grid-template-columns:repeat(3,34px);grid-auto-rows:34px;padding:16px}
  .hud{padding-left:14px;gap:10px}
  .hud .dot{width:18px;height:18px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .art *,.pdrain{animation:none!important}
}
