/* The Android demo. It mirrors the layout and labels of the real app screen. */
.device{position:relative;width:100%;max-width:min(360px,max(300px,calc((100vh - 48px)*.466)));margin:0 auto;aspect-ratio:9/19.3;background:#0C0B0A;border-radius:44px;padding:9px;
  box-shadow:inset 0 0 0 2px #3A352E,0 24px 48px -16px rgba(20,18,16,.55)}
.hw{position:absolute;right:-3px;width:4px;background:#3A352E;border:0;padding:0;border-radius:0 3px 3px 0}
.hw.power{top:21%;height:9%}
.hw.vol{top:33%;height:15%}
.hw.vol.press{background:var(--amber);box-shadow:0 0 0 3px rgba(242,178,51,.45)}
.ui{position:relative;height:100%;border-radius:36px;overflow:hidden;background:#000;color:#fff;display:flex;flex-direction:column;font-size:15px;line-height:1.25;font-family:Roboto,"Atkinson Hyperlegible",Arial,sans-serif}
.status{position:absolute;z-index:4;top:0;left:0;right:0;height:32px;display:flex;justify-content:space-between;align-items:center;padding:0 20px;font-size:13px;color:#fff;text-shadow:0 0 3px #000}
.status::after{content:"";position:absolute;left:50%;top:9px;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:#000;box-shadow:0 0 0 1px #2a2a2a}
.gesture{position:absolute;z-index:4;bottom:6px;left:50%;width:34%;height:4px;margin-left:-17%;border-radius:2px;background:#fff;opacity:.8}

/* Camera view */
.cam{position:relative;flex:1;min-height:0;overflow:hidden;background:#6B5E4B}
.doc{position:absolute;left:4%;right:4%;top:88px;bottom:-12px;padding:16px 16px;background:#F3EDE0;color:#191714;font-family:Georgia,serif;
  transform-origin:30% 30%;box-shadow:0 8px 22px rgba(0,0,0,.45);transition:filter .12s linear,transform .2s ease;overflow:hidden}
.sway{position:absolute;inset:0;animation:sway 5s ease-in-out infinite}
.frozen .sway{animation-play-state:paused}
@keyframes sway{0%,100%{transform:translate(0,0) rotate(-1.2deg)}50%{transform:translate(-3px,2px) rotate(-.6deg)}}
.doc h4{margin:0 0 10px;font-size:29px;line-height:1.1;letter-spacing:.01em}
.doc p{margin:0 0 9px;font-size:20px;line-height:1.28;padding:1px 2px}
.doc p.say{background:var(--amber);color:#000}
.doc.mono{font-family:"Courier New",monospace}
.m-contrast .cam-fx{filter:contrast(1.6)}
.m-bw .cam-fx{filter:grayscale(1) contrast(1.9)}
.m-inverted .cam-fx{filter:invert(1)}
.m-yellow .doc{background:#000;color:#FFE600;box-shadow:none}
.m-yellow .cam{background:#000}
.cam-fx{position:absolute;inset:0}
.shade{position:absolute;inset:0;background:#000;opacity:0;pointer-events:none;transition:opacity .5s}
.dim .shade{opacity:.84}
.torch{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .4s;background:radial-gradient(circle at 50% 42%,rgba(255,250,230,.28),transparent 68%)}
.lit .torch{opacity:1}

.bar{position:absolute;z-index:3;top:36px;left:8px;right:8px;display:flex;align-items:center;justify-content:space-between;gap:2px;background:rgba(20,18,16,.84);border-radius:12px;padding:2px 4px}
.bar button{background:none;border:0;color:#fff;font-size:13px;min-height:40px;padding:0 5px;white-space:nowrap}
.bar button.mode{font-weight:700;flex:1;white-space:normal}
.bar button.on{color:var(--amber);font-weight:700}

/* Controls */
.panel{background:#141210;padding:8px 8px 18px;flex:none}
.btns{display:grid;grid-template-columns:1.35fr 1fr;gap:6px;margin-bottom:6px}
.btns button{border:0;border-radius:9px;min-height:44px;color:#fff;font-size:14px;font-weight:700;padding:0 6px}
.b-read{background:#7A4000}.b-prof{background:#332C25}
.b-read.busy{background:var(--amber);color:#000}
.b-sos{background:var(--sos)!important;order:0}.b-call{background:var(--trust)!important}
.dio{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;gap:6px;background:#241F1A;border-radius:12px;padding:6px}
.dio button{height:48px;border:0;border-radius:9px;background:#7A4000;color:#fff;font-size:24px}
.dio .val{text-align:center}
.dio output{display:block;font-size:27px;font-weight:700;line-height:1.1}
.dio small{display:block;font-size:12px;color:#D8CFBF}
.ui input[type=range]{width:100%;height:30px;margin:2px 0 0;accent-color:var(--amber);display:block}

/* Overlays */
.layer{position:absolute;inset:0;z-index:5;display:none}
.layer.show{display:flex}
.dialog{background:rgba(0,0,0,.6);align-items:center;justify-content:center;padding:18px}
.card{background:#FFFCF5;color:#141210;border-radius:20px;padding:20px;width:100%;font-size:17px}
.card .row{display:flex;justify-content:space-between;gap:8px;margin-top:18px}
.card button{background:none;border:0;min-height:44px;font-weight:700;font-size:16px;padding:0 10px;color:#141210}
.card button.ok{color:var(--sos)}
.card .loc{color:var(--trust)}
.card .note{font-size:14px;color:var(--umber);margin-top:10px}
.sheet{background:rgba(0,0,0,.5);align-items:flex-end}
.sheet .card{border-radius:20px 20px 0 0;padding-bottom:26px}
.sheet button{display:block;width:100%;text-align:left}
.home{background:linear-gradient(170deg,#3A3128,#141210);flex-direction:column;justify-content:flex-end;padding:0 20px 40px}
.home .apps{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.home .apps i{aspect-ratio:1;border-radius:50%;background:rgba(255,255,255,.2);display:block}
.home .apps img{width:100%;display:block}
.presses{position:absolute;top:30%;right:12px;background:rgba(20,18,16,.92);border-radius:10px;padding:8px 12px;font-size:14px;font-weight:700}

.scenes{display:flex;justify-content:center;gap:4px;margin:14px auto 0;max-width:360px}
.scenes button{flex:1;background:none;border:1px solid var(--line);color:var(--ink);border-radius:8px;min-height:44px;font-size:1rem}
.scenes button[aria-pressed=true]{background:var(--ink);color:var(--bg);font-weight:700}
@media (prefers-reduced-motion:reduce){.sway{animation:none}.doc,.shade,.torch{transition:none}}
