@charset "utf-8";
:root{--amber:#d9b36c;--bg:#101515;--ink:#f1f3ef;--dim:#bac5c3;--acc:#b9d6c9;--red:#e0553f;--green:#b9d6c9;--panel:#141c1d;--inactive:#253132;--hover:#364748;--dark:#11221a}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;user-select:none}
html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-weight:800;overflow:hidden;touch-action:manipulation}
#app{position:fixed;inset:0;max-width:560px;margin:auto;overflow:hidden}
.grain{display:none}
.screen{position:absolute;inset:0;display:none;padding:max(28px,env(safe-area-inset-top)) 26px max(26px,env(safe-area-inset-bottom));flex-direction:column}
#app[data-screen=brief] #brief,#app[data-screen=report] #report{display:flex}
#app[data-screen=call] #call{display:block;padding:0}
#brief,#report{background:radial-gradient(120% 70% at 30% 0,#1b2626 0,#101515 65%)}
.kicker{letter-spacing:.1em;font-size:11px;color:var(--dim);font-weight:900}
h1{font-size:clamp(54px,18vw,96px);line-height:.9;margin:10px 0 28px;letter-spacing:.045em;text-transform:uppercase;font-weight:900}
h2{font-size:clamp(34px,11vw,58px);line-height:.95;margin:14px 0 10px;text-transform:uppercase;letter-spacing:.045em;font-weight:900}
#sub{font-size:11px;letter-spacing:.1em;color:var(--dim);text-transform:uppercase;margin-bottom:26px}
.goals{list-style:none;padding:0;margin:0 0 26px;display:grid;gap:14px;font-size:17px;letter-spacing:.06em;text-transform:uppercase;font-weight:900}
.goals b{color:var(--acc);margin-right:14px}
.cover{font-size:11px;letter-spacing:.1em;color:var(--dim);margin-top:auto;margin-bottom:22px;font-weight:800}
.dossier{border-left:3px solid var(--acc);padding:4px 0 4px 14px;margin-bottom:18px;display:grid;gap:8px}
.dos-name{font-size:13px;letter-spacing:.12em;color:var(--amber);font-weight:900}
.dos-line{font-size:12px;letter-spacing:.05em;color:var(--dim);line-height:1.5;font-weight:700;text-transform:none}
#mapOverlay .dossier{margin-bottom:4px}
#mapOverlay .cover{margin-top:0}
.cta{appearance:none;border:0;background:var(--acc);color:var(--dark);font:inherit;font-weight:900;font-size:17px;letter-spacing:.1em;padding:20px 0;text-transform:uppercase}
.cta:active{background:#536b67;color:var(--ink)}
.cta[disabled]{opacity:.4}
.msg{min-height:20px;margin-top:14px;font-size:11px;letter-spacing:.08em;color:var(--red);text-transform:uppercase}
.stage{position:absolute;inset:0;background:radial-gradient(110% 80% at 38% 26%,#2b3a3a 0,#141c1d 55%,#0b1010 100%)}
#face.scene3d{inset:0;top:0;left:0;width:100%;height:100%;aspect-ratio:auto;-webkit-mask-image:none;mask-image:none;filter:none}
#face{position:absolute;left:0;top:11%;width:100%;height:auto;aspect-ratio:1;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 20%,#000 62%,transparent 98%),linear-gradient(90deg,transparent 0,#000 14%,#000 70%,transparent 100%);-webkit-mask-composite:source-in;mask-image:linear-gradient(180deg,transparent 0,#000 20%,#000 62%,transparent 98%),linear-gradient(90deg,transparent 0,#000 14%,#000 70%,transparent 100%);mask-composite:intersect;filter:contrast(1.04) saturate(.92)}
#vig{position:absolute;inset:0;background:radial-gradient(90% 70% at 40% 40%,transparent 45%,rgba(5,9,9,.8));box-shadow:inset 0 0 0 0 var(--red);transition:box-shadow .5s}
#diamonds{position:absolute;right:max(14px,env(safe-area-inset-right));top:18%;display:grid;gap:24px;z-index:5;opacity:.88}
.dia{width:64px;text-align:center;position:relative}
.dia i{display:block;position:relative;width:46px;height:46px;margin:4px auto}
.dia i::before{content:"";position:absolute;inset:-6px;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);background:linear-gradient(0deg,var(--c) var(--p,20%),#172323d9 var(--p,20%));transition:background .3s}
.dia i span{position:absolute;inset:0;display:grid;place-items:center;font-size:17px;font-weight:900;color:var(--ink);z-index:1}
.dia em{display:block;margin-top:8px;font-style:normal;font-size:8.5px;letter-spacing:.1em;color:var(--dim);font-weight:800}
.dia[data-k=rapport]{--c:#b9d6c9}.dia[data-k=trust]{--c:#c3e0d0}.dia[data-k=suspicion]{--c:var(--red)}
.dia.map{background:none;border:0;padding:0;cursor:pointer;font:inherit}
.dia.map i::before{background:#172323d9}
.dia.map svg{position:absolute;inset:0;margin:auto;width:20px;height:20px;color:var(--dim);z-index:1}
.dia.map:active svg{color:var(--ink)}
#mapOverlay{position:absolute;inset:0;display:none;flex-direction:column;justify-content:center;gap:22px;padding:40px 34px;background:#0b0f0ef2;z-index:8}
#app[data-screen=call] #mapOverlay.open{display:flex}
#mapOverlay .cover{margin-top:0;margin-bottom:0}
#mapOverlay .mapclose{font-size:10px;letter-spacing:.12em;color:var(--dim);font-weight:800;text-align:center;margin-top:8px}
.dia.bump i{animation:bump .6s}
@keyframes bump{0%{transform:scale(1)}30%{transform:scale(1.28)}55%{transform:scale(.94)}100%{transform:scale(1)}}
#caption{position:absolute;left:18px;right:110px;bottom:104px;font-size:17px;line-height:1.45;color:var(--ink);display:none;font-weight:700}
#app.cc #caption{display:block}
.bar{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:12px;padding:16px 18px max(18px,env(safe-area-inset-bottom));background:linear-gradient(0deg,#101515ee,transparent)}
#status{font-size:11px;letter-spacing:.1em;color:var(--acc);min-width:92px;font-weight:900}
#meter{flex:1;height:5px;background:#25313280;overflow:hidden}
#meter b{display:block;height:100%;width:0;background:var(--acc)}
.sq{appearance:none;border:0;background:transparent;position:relative;color:var(--ink);font:inherit;font-weight:900;font-size:10px;letter-spacing:.08em;width:56px;height:56px;margin:0 4px;z-index:0}
.sq::before{content:"";position:absolute;inset:8px;transform:rotate(45deg);background:#172323d9;z-index:-1}
.sq span{display:block}
.sq .ico{width:20px;height:20px;display:block;margin:0 auto;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;fill:none}
.sq .ico .slash{display:none;stroke:#e05a3a;stroke-width:2.6}
.sq.on .ico .slash{display:inline}
.sq.on .ico .waves{display:none}
.sq.on::before{background:var(--acc)}.sq.on{color:var(--dark)}
.sq.warn::before{background:#7a2a20e0}
.rows{display:grid;gap:12px;margin-bottom:22px}
.row{display:flex;justify-content:space-between;font-size:15px;letter-spacing:.1em;text-transform:uppercase;padding-bottom:10px;border-bottom:1px solid #bac5c326;font-weight:800}
.row b{color:var(--acc)}
#intel{font-size:15px;letter-spacing:.04em;color:var(--ink);line-height:1.45;margin-bottom:24px;font-weight:700}
#again{margin-top:auto}

body.scene-wait #face{visibility:hidden}
body.scene-wait #call::after{content:"TAKING HER SEAT\2026";position:absolute;top:42%;left:0;width:calc(100% - 130px);text-align:center;font-size:11px;letter-spacing:.18em;color:var(--acc);opacity:.85}

/* v18b: narrow-portrait bar fit - keep all controls inside viewport */
@media (max-width:480px){
  .bar{gap:6px;padding:12px 12px max(14px,env(safe-area-inset-bottom))}
  #status{min-width:0;font-size:10px;letter-spacing:.06em;white-space:nowrap}
  #meter{display:none}
  .sq{width:44px;height:44px;margin:0 2px}
  .sq::before{inset:6px}
  .sq .ico{width:18px;height:18px}
  .sq span{font-size:9px}
}

/* v18b: short-viewport score diamonds - keep clear of the control bar */
@media (max-height:560px){
  #diamonds{gap:10px;top:10%}
  .dia{width:56px}
  .dia i{width:40px;height:40px;margin:2px auto}
  .dia i span{font-size:15px}
  .dia em{margin-top:4px;font-size:8px}
}
