@font-face{font-family:"Manrope";src:url("manrope.woff2?v=427afed412") format("woff2");font-weight:200 800;font-display:block}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{background:#07090a;color:#cfd8d7;font-family:Manrope,system-ui,sans-serif;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
button{font:inherit;color:inherit;cursor:pointer}

/* ---------- preview chrome (not part of the OS) ---------- */
#app{min-height:100%;display:flex;flex-direction:column}
.tools{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;justify-content:center;padding:12px 16px;border-bottom:1px solid #151b1d;background:#0a0d0e}
.tools .brand{display:flex;align-items:center;gap:8px;margin-right:auto;font-size:12px;letter-spacing:.22em;font-weight:800;color:#fff}
.tools .brand svg{width:22px;height:20px;fill:#00E5CC}
.tools .brand b{color:#00E5CC;font-weight:300}
.tools .brand em{font-style:normal;letter-spacing:.04em;font-weight:500;color:#5d6b6a;margin-left:6px}
.grp{display:flex;align-items:center;gap:4px}
.grp span{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#56615f;margin-right:4px}
.grp button{background:#111618;border:1px solid #1d2527;border-radius:8px;padding:6px 10px;font-size:13px;font-weight:600;color:#9fb0ae}
.grp button:hover{border-color:#2e3a3c;color:#fff}
.grp button.on{background:#0f2523;border-color:var(--chrome-ac,#00E5CC);color:#fff}
.stage{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:18px 12px 24px;gap:14px}
.device{display:flex;flex-direction:column;align-items:center;gap:18px;background:linear-gradient(#16191b,#0f1213);border:1px solid #1f2527;border-radius:28px;padding:22px 22px 20px;box-shadow:0 30px 80px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.04)}
.bezel{background:#020303;border-radius:10px;padding:10px;box-shadow:inset 0 0 0 1px #1a1f21}
#viewport{overflow:hidden;position:relative;border-radius:2px}
#screen{width:var(--W);height:var(--H);position:relative;overflow:hidden}
.pad{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:520px;user-select:none;-webkit-user-select:none;touch-action:manipulation}
.dpad{display:grid;grid-template-columns:44px 44px 44px;grid-template-rows:44px 44px 44px;gap:2px}
.dpad button{background:#1b2022;border:1px solid #262d30;border-radius:8px;font-size:13px;color:#7d8b8a}
.dpad [data-k=up]{grid-column:2;grid-row:1}.dpad [data-k=left]{grid-column:1;grid-row:2}.dpad [data-k=right]{grid-column:3;grid-row:2}.dpad [data-k=down]{grid-column:2;grid-row:3}
.pad button:active,.pad button.hit{background:#253033;color:#fff}
.pill{background:#1b2022;border:1px solid #262d30;border-radius:20px;padding:8px 18px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#7d8b8a}
.face{position:relative;width:150px;height:120px}
.face button{position:absolute;width:52px;height:52px;border-radius:50%;background:#1b2022;border:1px solid #262d30;font-weight:800;font-size:17px;color:#9aa8a7}
.face .a{right:0;top:30px}.face .b{right:56px;top:64px}.face .y{right:56px;top:0}
.legend{font-size:12px;color:#55615f;text-align:center;max-width:640px;line-height:1.6}
body.shot{background:transparent}
body.shot .tools,body.shot .pad,body.shot .legend{display:none}
body.shot .stage{padding:0;display:block}
body.shot .device{padding:0;border:0;border-radius:0;background:none;box-shadow:none;display:block}
body.shot .bezel{padding:0;border-radius:0;box-shadow:none}
body.shot #viewport{border-radius:0}
body.noanim *,body.noanim *::before,body.noanim *::after{transition:none!important;animation-duration:0s!important;animation-delay:0s!important}

/* ---------- OS: shared ---------- */
/* colors are set by the Look system (app.js lookColors); these are the default Teal fallbacks */
#screen{--bg:#0B1214;--fg:#EAF4F3;--dim:#7F9895;--faint:#22302f;--ac:#00E5CC;--acbg:rgba(0,229,204,.12);--onac:#060A0B;--fz:1;
  transition:background-color .2s;
  background:var(--bg);color:var(--fg);font-family:Manrope,sans-serif;font-feature-settings:"tnum" 0}
#screen::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 90% at 50% 0%,rgba(255,255,255,.035),transparent 60%);z-index:5}
.dimmer{position:absolute;inset:0;background:#000;pointer-events:none;z-index:50;transition:opacity .2s}
.view{position:absolute;inset:0;display:flex;flex-direction:column}
.view.enter{animation:enter .22s cubic-bezier(.2,.7,.2,1)}
.view.enter.back{animation-name:enterback}
@keyframes enter{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}
@keyframes enterback{from{opacity:0;transform:translateX(-14px)}to{opacity:1;transform:none}}
.tnum{font-variant-numeric:tabular-nums}

/* top bar */
.top{display:flex;align-items:center;gap:14px;padding:0 22px;height:44px;flex:none;font-size:17px;font-weight:600;color:var(--dim)}
.top .ttl{display:flex;align-items:center;gap:10px;margin-right:auto;color:var(--fg);font-weight:700}
.top .ttl svg{width:22px;height:20px;fill:var(--ac)}
.top .st{display:flex;align-items:center;gap:6px}
.ico{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.batt{display:flex;align-items:center;gap:6px}
.batt i{position:relative;width:26px;height:13px;border:2px solid currentColor;border-radius:3px;display:block}
.batt i::after{content:"";position:absolute;right:-5px;top:2px;width:2px;height:5px;background:currentColor;border-radius:1px}
.batt i b{position:absolute;left:1px;top:1px;bottom:1px;background:var(--fg);border-radius:1px}
.clock{color:var(--fg);font-variant-numeric:tabular-nums}

/* header */
.hd{padding:6px 28px 10px;flex:none}
.hd h1{font-size:calc(30px*var(--fz));font-weight:800;letter-spacing:-.01em;line-height:1.1}
.hd p{font-size:calc(16px*var(--fz));color:var(--dim);font-weight:500;margin-top:4px}
.steps{display:flex;gap:6px;margin-top:10px}
.steps i{width:22px;height:4px;border-radius:2px;background:var(--faint);transition:background .3s}
.steps i.on{background:var(--ac)}

/* list */
.body{position:relative;flex:1;min-height:0}
.list{position:absolute;inset:0;overflow:hidden}
.rows{position:absolute;left:0;right:0;top:0;transition:transform .2s cubic-bezier(.2,.7,.2,1)}
.row{position:absolute;left:0;right:0;display:flex;align-items:center;gap:12px;padding:0 28px;cursor:pointer;transition:color .15s,opacity .2s}
.row .lbl{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .rt{color:var(--dim);font-variant-numeric:tabular-nums;white-space:nowrap;display:flex;align-items:center;gap:8px}
.row .lead{width:18px;display:flex;justify-content:center;color:var(--ac);flex:none}
.row .lead svg{width:16px;height:16px}
.row.sep::after{content:"";position:absolute;left:28px;right:28px;bottom:0;height:1px;background:var(--faint)}
.hl{position:absolute;left:14px;right:14px;top:0;pointer-events:none;transition:transform .2s cubic-bezier(.2,.7,.2,1)}
.bar{display:inline-block;width:120px;height:6px;border-radius:3px;background:var(--faint);position:relative;overflow:hidden;vertical-align:middle}
.bar b{position:absolute;left:0;top:0;bottom:0;background:var(--ac);border-radius:3px;transition:width .2s}
.arrows{color:var(--dim)}
.sel .arrows{color:var(--ac)}
.empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--dim);font-size:18px}

/* hint bar */
.hints{display:flex;gap:20px;align-items:center;justify-content:flex-end;padding:0 24px;height:40px;flex:none;font-size:14px;font-weight:600;color:var(--dim)}
.hints span{display:flex;align-items:center;gap:7px}
.hints kbd{font-family:inherit;display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:var(--faint);color:var(--fg);font-size:12px;font-weight:800}
.hints span.l{margin-right:auto}

/* toast + jump letter */
.toast{position:absolute;left:50%;bottom:56px;transform:translate(-50%,10px);opacity:0;background:var(--fg);color:var(--bg);font-weight:700;font-size:16px;padding:9px 18px;border-radius:22px;transition:opacity .2s,transform .2s;z-index:40;white-space:nowrap}
.toast.on{opacity:1;transform:translate(-50%,0)}
.jump{position:absolute;right:30px;top:50%;width:84px;height:84px;margin-top:-42px;border-radius:20px;background:var(--acbg);border:2px solid var(--ac);color:var(--ac);font-size:48px;font-weight:800;display:flex;align-items:center;justify-content:center;opacity:0;transform:scale(.9);transition:opacity .25s,transform .25s;z-index:30}
.jump.on{opacity:1;transform:none}

/* boot */
.boot{align-items:center;justify-content:center;gap:26px}
.boot svg{width:120px;height:107px;fill:var(--ac);overflow:visible;filter:drop-shadow(0 0 18px var(--acbg))}
.boot .s1{animation:slab .9s .1s cubic-bezier(.2,.8,.2,1) both}
.boot .s2{animation:slab2 .9s .2s cubic-bezier(.2,.8,.2,1) both}
.boot .s3{animation:slab .9s .3s cubic-bezier(.2,.8,.2,1) both}
@keyframes slab{0%{opacity:0;transform:translateX(-40px)}60%{opacity:1;transform:translateX(6px)}100%{transform:none}}
@keyframes slab2{0%{opacity:0;transform:translateX(40px)}60%{opacity:1;transform:translateX(-6px)}100%{transform:none}}
.boot .wm{font-size:15px;letter-spacing:.42em;font-weight:800;padding-left:.42em;animation:fade .6s .7s both}
.boot .wm b{color:var(--ac);font-weight:300}
.boot .load{width:120px;height:2px;background:var(--faint);border-radius:1px;overflow:hidden;animation:fade .4s .9s both}
.boot .load b{display:block;height:100%;width:100%;background:var(--ac);transform-origin:left;animation:load 1.3s 1s ease-in-out both}
@keyframes load{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes fade{from{opacity:0}to{opacity:1}}

/* keyboard */
.pw{margin:4px 28px 12px;height:50px;border-radius:12px;background:var(--faint);display:flex;align-items:center;padding:0 16px;font-size:22px;font-weight:700;letter-spacing:.12em;flex:none}
.pw .caret{width:2px;height:26px;background:var(--ac);margin-left:2px;animation:blink 1s steps(1) infinite}
.pw .ph{color:var(--dim);letter-spacing:0;font-weight:500;font-size:17px}
@keyframes blink{50%{opacity:0}}
.kb{flex:1;display:flex;flex-direction:column;gap:6px;padding:0 22px 6px}
.kr{display:flex;gap:6px;flex:1}
.k{flex:1;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:21px;font-weight:700;background:rgba(255,255,255,.04);color:var(--fg);transition:background .12s,color .12s;cursor:pointer}
.k.w{flex:2.4;font-size:15px;letter-spacing:.04em}
.k.sel{background:var(--ac);color:var(--onac)}

/* time */
.bigtime{padding:0 28px 8px;font-size:64px;font-weight:800;letter-spacing:-.02em;line-height:1;flex:none;font-variant-numeric:tabular-nums}
.bigtime small{font-size:22px;font-weight:600;color:var(--dim);margin-left:10px;letter-spacing:0}

/* copy screen */
.copy{padding:0 28px;flex:1;display:flex;flex-direction:column;gap:12px}
.path{font-size:16px;font-weight:700;color:var(--ac)}
.folders{display:grid;grid-template-columns:1fr 1fr;gap:6px 24px}
.folders div{display:flex;gap:12px;align-items:baseline;font-size:17px;font-weight:600;border-bottom:1px solid var(--faint);padding:5px 0}
.folders b{font-weight:800;min-width:70px;font-variant-numeric:tabular-nums}
.folders span{color:var(--dim)}
.note{font-size:15px;color:var(--dim);line-height:1.45}
.btn{align-self:flex-start;margin-top:auto;margin-bottom:6px;background:var(--ac);color:var(--onac);font-weight:800;font-size:17px;border-radius:24px;padding:10px 26px}

/* game running */
.game{background:radial-gradient(60% 50% at 70% 45%,rgba(255,255,255,.05),transparent 70%),#050506;align-items:center;justify-content:center;gap:10px;color:#8a8f95}
.game .scan{position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(255,255,255,.025) 0 2px,transparent 2px 4px);animation:scan 6s linear infinite}
@keyframes scan{from{background-position:0 0}to{background-position:0 120px}}
.game .gt{font-size:26px;font-weight:800;color:#e8e8ea;position:relative}
.game .gs{font-size:15px;position:relative}
.game .gh{position:absolute;bottom:18px;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:#4b4f55}
.ovl{position:absolute;inset:0;background:rgba(0,0,0,.55);z-index:20;opacity:0;pointer-events:none;transition:opacity .2s}
.ovl.on{opacity:1;pointer-events:auto}
.panel{position:absolute;left:0;top:0;bottom:0;width:58%;background:var(--bg);display:flex;flex-direction:column;transform:translateX(-24px);transition:transform .22s cubic-bezier(.2,.7,.2,1);box-shadow:20px 0 60px rgba(0,0,0,.5)}
.ovl.on .panel{transform:none}

/* about */
.about{padding:0 28px;font-size:16px;line-height:1.55;color:var(--dim);overflow:hidden;flex:1;position:relative}
.about .in{transition:transform .2s}
.about h3{color:var(--fg);font-size:17px;margin:10px 0 2px}
.about p b{color:var(--fg);font-weight:600}

/* ---------- Option 1: bold, roomy, filled selection ---------- */
.o1 .row{font-size:calc(24px*var(--fz));font-weight:700}
.o1 .row .rt{font-size:calc(19px*var(--fz));font-weight:600}
.o1 .row.sel .rt{color:var(--fg)}
.o1 .hl{border-radius:14px;background:var(--acbg);box-shadow:inset 3px 0 0 var(--ac)}
.o1 .row.sel .lbl{color:var(--fg)}

/* ---------- Option 2: dense, editorial caps, hairlines ---------- */
.o2 .top{height:34px;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;padding:0 24px;border-bottom:1px solid var(--faint)}
.o2 .top .ttl{font-weight:800}
.o2 .top .ttl svg{width:16px;height:14px}
.o2 .batt i{display:none}
.o2 .hd{padding:14px 24px 8px}
.o2 .hd h1{font-size:12px;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:var(--ac)}
.o2 .hd p{font-size:calc(22px*var(--fz));color:var(--fg);font-weight:600;margin-top:6px;letter-spacing:-.01em}
.o2 .steps i{width:auto;flex:1;height:2px}
.o2 .row{font-size:calc(19px*var(--fz));font-weight:500;padding:0 24px}
.o2 .row::before{content:"";position:absolute;left:24px;right:24px;bottom:0;height:1px;background:var(--faint)}
.o2 .row .rt{font-size:calc(15px*var(--fz));font-weight:600}
.o2 .row.sel{color:var(--ac);font-weight:700}
.o2 .row.sel .rt{color:var(--ac)}
.o2 .hl{left:0;right:auto;width:4px;background:var(--ac);border-radius:0 2px 2px 0}
.o2 .hints{height:30px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;border-top:1px solid var(--faint)}
.o2 .hints kbd{height:18px;min-width:18px;font-size:10px;border-radius:4px;letter-spacing:0}
.o2 .k{border-radius:4px;font-weight:600;font-size:19px}
.o2 .pw{border-radius:4px;margin:4px 24px 10px;height:44px;background:transparent;border-bottom:2px solid var(--ac);border-radius:0;padding:0 2px}
.o2 .btn{border-radius:4px;letter-spacing:.14em;text-transform:uppercase;font-size:13px}
.o2 .bigtime{font-weight:300;padding:0 24px 8px}
.o2 .copy{padding:0 24px}
.o2 .about{padding:0 24px}
.o2 .bar{height:2px;width:140px}

/* ---------- Option 3: split, focus list ---------- */
.o3 .top{height:34px;font-size:14px;padding:0 24px}
.o3 .top .ttl{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--dim);font-weight:700}
.o3 .top .ttl svg{width:16px;height:14px}
.split{flex:1;display:flex;min-height:0}
.aside{width:38%;flex:none;padding:6px 0 0 26px;display:flex;flex-direction:column;justify-content:center;gap:2px;overflow:hidden}
.aside .big{font-size:96px;font-weight:800;line-height:.95;color:var(--ac);letter-spacing:-.04em;font-variant-numeric:tabular-nums;white-space:nowrap}
.aside .bigsm{font-size:46px;line-height:1.05;letter-spacing:-.02em}
.aside .cap{font-size:12px;letter-spacing:.24em;text-transform:uppercase;font-weight:700;color:var(--dim);margin-bottom:6px}
.aside .sub{font-size:17px;font-weight:600;color:var(--fg);margin-top:8px;line-height:1.3}
.o3 .body{border-left:1px solid var(--faint)}
.o3 .list{-webkit-mask-image:linear-gradient(transparent,#000 22%,#000 78%,transparent);mask-image:linear-gradient(transparent,#000 22%,#000 78%,transparent)}
.o3 .row{font-size:calc(20px*var(--fz));font-weight:600;color:var(--dim);padding:0 22px;transition:color .2s,font-size .2s,opacity .2s}
.o3 .row.sel{font-size:calc(30px*var(--fz));font-weight:800;color:var(--fg)}
.o3 .row.sel .rt{color:var(--ac);font-size:calc(18px*var(--fz))}
.o3 .row .rt{font-size:calc(15px*var(--fz))}
.o3 .row.far{opacity:.45}
.row.out{opacity:0;pointer-events:none}
.game .gt,.game .gs,.game .gh{transition:opacity .2s}
.game.paused .gt,.game.paused .gs,.game.paused .gh{opacity:0}
.o3 .hl{left:0;right:auto;width:3px;background:var(--ac)}
.o3 .hd{padding:6px 26px 6px}
.o3 .hd h1{font-size:calc(26px*var(--fz))}
.o3 .hints{height:34px;font-size:13px}
.o3 .k{border-radius:50px}
.o3 .k.w{border-radius:50px}
.o3 .btn{border-radius:30px}
@media (max-width:600px){
  .tools{gap:8px;padding:10px 8px}
  .tools .brand{margin:0 auto;width:100%;justify-content:center}
  .grp{flex-wrap:wrap;justify-content:center}
  .grp button{padding:6px 8px;font-size:12px}
  .stage{padding:12px 6px 18px}
  .device{padding:12px 10px 14px;border-radius:20px;gap:14px}
  .bezel{padding:6px}
  .pad{max-width:100%;padding:0 4px}
  .dpad{grid-template-columns:40px 40px 40px;grid-template-rows:40px 40px 40px}
  .face{width:124px;height:110px}
  .face button{width:46px;height:46px}
  .face .a{top:28px}.face .b{right:50px;top:60px}.face .y{right:50px}
  .pill{padding:7px 12px}
}

/* ---------- Look screen ---------- */
.arrows{padding:0 4px;cursor:pointer}
.sw{display:inline-block;width:16px;height:16px;border-radius:50%;flex:none;box-shadow:0 0 0 2px var(--faint)}
.hue{position:relative;display:inline-block;width:120px;height:10px;border-radius:5px;cursor:pointer;
  background:linear-gradient(90deg,hsl(0,100%,62%),hsl(60,100%,62%),hsl(120,100%,62%),hsl(180,100%,62%),hsl(240,100%,70%),hsl(300,100%,62%),hsl(359,100%,62%))}
.hue b{position:absolute;top:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:var(--fg);box-shadow:0 0 0 3px var(--bg)}
.hv{min-width:38px;text-align:right}
.lookhd{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.lookpv{width:190px;flex:none;border:1px solid var(--faint);border-radius:10px;padding:6px 0 6px;font-size:12px;font-weight:600;color:var(--dim);background:rgba(255,255,255,.015)}
.lookpv .pvt{display:flex;align-items:center;justify-content:space-between;padding:0 10px 4px;font-size:10px;font-weight:700}
.lookpv .pvt svg{width:12px;height:11px;fill:var(--ac)}
.lookpv .pvr{position:relative;display:flex;justify-content:space-between;padding:3px 10px 3px 12px;color:var(--fg);font-size:calc(12px*var(--fz))}
.lookpv .pvr b{color:var(--dim);font-weight:600}
.o1 .lookpv .pvr.on{background:var(--acbg);box-shadow:inset 2px 0 0 var(--ac);margin:0 4px;border-radius:6px;padding-left:8px}
.o2 .lookpv{border-radius:3px}
.o2 .lookpv .pvr{font-weight:500;border-bottom:1px solid var(--faint);padding:2px 10px}
.o2 .lookpv .pvr.on{color:var(--ac);font-weight:700;box-shadow:inset 2px 0 0 var(--ac)}
.o2 .lookpv .pvr.on b{color:var(--ac)}
.o3 .lookpv .pvr{color:var(--dim)}
.o3 .lookpv .pvr.on{color:var(--fg);font-size:calc(15px*var(--fz));font-weight:800;box-shadow:inset 2px 0 0 var(--ac)}
.o3 .lookpv .pvr.on b{color:var(--ac)}
.o3 .aside .lookpv{width:auto;margin:14px 22px 0 0}
.o2 .lookhd{padding-top:10px}
.hue.off{opacity:.45}
