@import url('https://fonts.googleapis.com/css2?family=Sora:wght@400;600;800&family=Nunito:wght@400;600;800&display=swap');
:root{--bg:#EAF4FB;--sf:#FFFFFF;--ink:#0E2A47;--rasp:#E0115F;--sun:#F6B800;--rule:#BCD3E6;--dim:#3d5875}
*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:1.08rem/1.6 Nunito,sans-serif;padding-bottom:110px}
a{color:var(--rasp)}:focus-visible{outline:3px solid var(--rasp);outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:var(--sf);padding:.5rem;z-index:50}
h1,h2,h3,.sora{font-family:Sora,sans-serif;letter-spacing:-.02em;line-height:1.1}
.bar{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.4rem;gap:1rem;flex-wrap:wrap}
.logo{font:800 1.2rem Sora;color:var(--ink);text-decoration:none}.logo i{font-style:normal;color:var(--rasp)}.bar small{color:var(--dim)}
.dock{position:fixed;left:50%;bottom:14px;transform:translateX(-50%);background:var(--ink);border-radius:30px;padding:8px;z-index:40;box-shadow:0 12px 30px -10px rgba(14,42,71,.5);max-width:calc(100vw - 16px)}
.dock ul{list-style:none;margin:0;padding:0;display:flex;gap:2px}
.dock a{display:flex;flex-direction:column;align-items:center;gap:2px;color:#cfe3f3;text-decoration:none;font:600 .72rem Sora;padding:8px 12px;border-radius:22px;min-width:58px}
.dock svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.dock a:hover{color:#fff}.dock a[aria-current=page]{background:var(--rasp);color:#fff}
main{max-width:1120px;margin:auto;padding:0 1.4rem}
h1{font-size:clamp(2.2rem,6vw,4.4rem);font-weight:800;margin:.5rem 0 1rem}h1 em{font-style:normal;color:var(--rasp)}
.lede{font-size:1.25rem;color:var(--dim);max-width:38rem}
.center{text-align:center}.center .lede{margin:auto}
/* phone scroller */
.scroller{display:grid;grid-template-columns:1fr 320px 1fr;gap:2.5rem;margin-top:2rem}
.phonecol{grid-column:2;grid-row:1/span 6;position:relative}
.phone{position:sticky;top:8vh;width:300px;height:610px;border-radius:46px;background:var(--ink);padding:14px;box-shadow:0 30px 60px -20px rgba(14,42,71,.45)}
.notch{position:absolute;top:22px;left:50%;transform:translateX(-50%);width:90px;height:22px;background:var(--ink);border-radius:12px;z-index:2}
.screen{position:relative;height:100%;border-radius:34px;overflow:hidden;background:var(--sf)}
.scr{position:absolute;inset:0;padding:54px 20px 20px;opacity:0;transform:translateY(16px);transition:opacity .4s,transform .4s;display:flex;flex-direction:column;gap:10px}
.scr.on{opacity:1;transform:none}
.scr h3{font-size:1.3rem;margin:0}.pill{background:var(--bg);border-radius:14px;padding:10px 12px;font-size:.9rem}
.pill.hot{background:var(--rasp);color:#fff}.pill.sun{background:var(--sun)}
.cap{min-height:70vh;display:flex;flex-direction:column;justify-content:center}
.cap.l{grid-column:1;text-align:right}.cap.r{grid-column:3}
.cap h2{font-size:1.7rem;margin:0 0 .5rem}.cap .tag{font:700 .8rem Sora;color:var(--rasp);text-transform:uppercase;letter-spacing:.1em}
.chips{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;list-style:none;padding:0;margin:1.5rem 0 3rem}
.chips li{background:var(--sf);border:2px solid var(--ink);border-radius:999px;padding:.5rem 1.2rem;font:700 1rem Sora}
/* shelf */
.shelf{display:flex;gap:1.2rem;overflow-x:auto;padding:1.5rem .5rem 1.5rem;border-bottom:8px solid var(--rule);scroll-snap-type:x proximity}
.app{flex:0 0 auto;scroll-snap-align:start;background:none;border:0;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:.5rem;font:600 .95rem Sora;color:var(--ink);width:104px}
.ico{width:84px;height:84px;border-radius:22px;display:grid;place-items:center;transition:transform .2s;box-shadow:0 8px 16px -8px rgba(14,42,71,.4)}
.ico svg{width:40px;height:40px;fill:none;stroke:#fff;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.app:hover .ico{transform:translateY(-4px) rotate(-3deg)}.app[aria-selected=true] .ico{outline:4px solid var(--ink);outline-offset:3px}
.detail{background:var(--sf);border-radius:28px;padding:2rem;margin:2rem 0;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:2rem}
.detail[hidden]{display:none}.detail h2{font-size:2rem;margin-top:0}.detail ul{padding-left:1.2rem}
.ex{background:var(--bg);border-radius:18px;padding:1.2rem}.ex b{font-family:Sora;color:var(--rasp)}
/* changelog */
.cl{max-width:780px}.rel{background:var(--sf);border-radius:20px;padding:1.6rem;margin:1.4rem 0;border:1px solid var(--rule)}
.rel header{display:flex;gap:.8rem;align-items:baseline;flex-wrap:wrap}.ver{font:800 1rem Sora;background:var(--ink);color:#fff;border-radius:8px;padding:.15rem .6rem}
.rel h2{font-size:1.5rem;margin:0}.lab{font:700 .75rem Sora;text-transform:uppercase;letter-spacing:.08em;border-radius:6px;padding:.1rem .45rem;margin-right:.4rem}
.new{background:#ffd9e7;color:#9c0a42}.fix{background:#fff0bf;color:#6b5000}.imp{background:#d7ebf9;color:var(--ink)}
.rel ul{list-style:none;padding:0}.rel li{padding:.4rem 0;border-top:1px dashed var(--rule)}
/* mill */
.poster{font:800 clamp(3rem,13vw,10rem)/.86 Sora;letter-spacing:-.05em;margin:2rem 0;color:var(--ink);overflow-wrap:anywhere}.poster span{color:var(--rasp)}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0;border-top:3px solid var(--ink)}
.facts div{padding:1.2rem 1rem 1.2rem 0;border-bottom:1px solid var(--rule)}.facts dt{font:700 .8rem Sora;text-transform:uppercase;letter-spacing:.1em;color:var(--rasp)}.facts dd{margin:.3rem 0 0;font-size:1.25rem;overflow-wrap:anywhere}
/* chat */
.chat{max-width:640px;margin:2rem auto;background:var(--sf);border-radius:32px;padding:1.4rem;border:2px solid var(--rule)}
.b{max-width:85%;padding:.8rem 1.1rem;border-radius:20px;margin:.6rem 0}.them{background:var(--bg);border-bottom-left-radius:6px}
.me{margin-left:auto;background:var(--rasp);color:#fff;border-bottom-right-radius:6px}
.me label{display:block;font:700 .85rem Sora;margin-bottom:.3rem}.me label small{font-weight:400}
.me input,.me textarea{width:100%;font:inherit;border:0;border-radius:12px;padding:.6rem;color:var(--ink)}
.send{display:block;margin:1rem 0 0 auto;background:var(--ink);color:#fff;border:0;border-radius:999px;padding:.8rem 1.5rem;font:700 1rem Sora;cursor:pointer}
.status:empty{display:none}
.prose{max-width:42rem}.prose h2{margin-top:2rem}
footer{max-width:1120px;margin:3rem auto 0;padding:1.2rem 1.4rem;border-top:1px solid var(--rule);color:var(--dim);font-size:.9rem;display:flex;gap:1rem;flex-wrap:wrap;justify-content:space-between}
@media(max-width:900px){.scroller{grid-template-columns:1fr;gap:0}.phonecol{grid-column:1;grid-row:1;position:sticky;top:0;z-index:5;background:var(--bg);padding:.6rem 0}.phone{position:relative;top:0;width:170px;height:300px;border-radius:30px;padding:8px;margin:auto}.notch{top:12px;width:56px;height:14px}.screen{border-radius:24px}.scr{padding:30px 10px 10px;gap:6px}.scr h3{font-size:.9rem}.pill{font-size:.7rem;padding:6px 8px}.cap,.cap.l,.cap.r{grid-column:1;text-align:left;min-height:55vh}.detail{grid-template-columns:1fr;padding:1.3rem}.dock a{min-width:0;padding:8px 8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}