/* LIEUTENANT VIPER / SuperGrok — Jason's Place Mansion Engine styles.
   Warm storybook identity: sunrise peach, parchment cream, garden mint and lavender; rounded, friendly, big touch
   targets. Mobile-first (iPhone 390/430, iPad 768, desktop 1440). No external fonts or images. */
:root{
  --me-cream:#fff8ec; --me-parch:#fff1d9; --me-peach:#ffd9b8; --me-coral:#e8774f; --me-coral-d:#c75a35;
  --me-lav:#8b6fd1; --me-lav-s:#ece6fb; --me-mint:#8fd3b4; --me-mint-s:#e3f6ec; --me-sky:#cfe3ff; --me-sun:#ffd36e;
  --me-ink:#4a3426; --me-muted:#7d6553; --me-line:#f0d7b6; --me-ok:#2f855a; --me-bad:#b5452f;
  --me-r:22px; --me-shadow:0 10px 28px rgba(120,72,30,.14);
  --me-serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Times New Roman",serif;
  --me-sans:ui-rounded,"SF Pro Rounded","Nunito","Avenir Next",system-ui,-apple-system,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0;padding:0;max-width:100%;overflow-x:hidden}
html.me-sheet-open{overflow:hidden}
body.me-body{font:16px/1.5 var(--me-sans);color:var(--me-ink);min-height:100vh;min-height:100dvh;-webkit-text-size-adjust:100%;
  background:radial-gradient(900px 500px at 85% -10%,rgba(255,211,110,.35),transparent 60%),radial-gradient(800px 500px at -10% 20%,rgba(143,211,180,.25),transparent 60%),linear-gradient(180deg,#fff8ec 0%,#fff1e0 60%,#fde9df 100%);background-attachment:fixed;padding-bottom:env(safe-area-inset-bottom)}
a{color:var(--me-coral-d)}
.me-skip{position:absolute;left:-999px;top:0;background:#fff;padding:10px 14px;border-radius:12px;z-index:50}
.me-skip:focus{left:10px;top:10px}
:focus-visible{outline:3px solid var(--me-lav);outline-offset:3px}

/* top bar */
.me-bar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:8px;padding:8px max(12px,env(safe-area-inset-left)) 8px max(12px,env(safe-area-inset-right));background:rgba(255,248,236,.94);backdrop-filter:saturate(1.2) blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:2px solid var(--me-line)}
.me-brand{display:flex;align-items:center;gap:6px;text-decoration:none;color:var(--me-ink);font:700 17px/1 var(--me-serif);flex:none}
.me-brand span{display:none}
.me-where{flex:1;min-width:0;font:700 15px/1.2 var(--me-serif);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.me-bar-actions{display:flex;gap:6px;flex:none}
.me-icon-btn{appearance:none;border:2px solid var(--me-line);background:#fff;color:var(--me-ink);border-radius:16px;min-width:46px;min-height:46px;padding:4px 8px;font:700 18px/1 var(--me-sans);display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;box-shadow:0 3px 0 var(--me-line)}
.me-icon-btn:active{transform:translateY(2px);box-shadow:0 1px 0 var(--me-line)}
.me-label-sm{font-size:10px;font-weight:800;letter-spacing:.02em}
.me-ribbon{background:var(--me-lav-s);color:#3d2b7a;padding:8px 14px;font-size:14px;text-align:center;border-bottom:2px solid #d8cdf5}

/* room */
.me-room{max-width:1120px;margin:0 auto;padding:12px max(12px,env(safe-area-inset-left)) 24px max(12px,env(safe-area-inset-right))}
.me-room:focus{outline:none}
.me-loading{text-align:center;padding:60px 10px;font:600 18px var(--me-serif)}
.me-hero{position:relative;border-radius:var(--me-r);overflow:hidden;background:var(--me-parch);box-shadow:var(--me-shadow);border:3px solid #fff}
.me-hero-art{aspect-ratio:16/9;max-height:52vh;overflow:hidden;background:var(--me-peach)}
.me-hero-img{display:block;width:100%;height:100%;object-fit:cover}
.me-hero-text{padding:12px 16px 14px;background:linear-gradient(180deg,#fffdf7,#fff4e2)}
.me-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 6px}
.me-chip{display:inline-block;padding:3px 10px;border-radius:999px;background:#fff;border:2px solid var(--me-line);font-size:12.5px;font-weight:800;color:var(--me-muted)}
.me-chip-new{background:#fff4c2;border-color:var(--me-sun);color:#7a5200}
.me-chip-demo{background:var(--me-lav-s);border-color:#cfc2f3;color:#3d2b7a}
.me-title{font:700 clamp(26px,6.4vw,40px)/1.1 var(--me-serif);margin:2px 0 4px;color:#5a3418;overflow-wrap:anywhere}
.me-title:focus{outline:none}
.me-short{margin:0;font-size:17px;color:var(--me-muted)}
.me-room-body{display:grid;gap:14px;margin-top:14px}
.me-long{font:18px/1.6 var(--me-serif);margin:0;background:#fffdf7;border:2px solid var(--me-line);border-radius:var(--me-r);padding:14px 16px}
.me-friends{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.me-friend{display:flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border-radius:999px;background:var(--c-soft,#fff);border:2px solid #fff;box-shadow:0 3px 10px rgba(120,72,30,.1)}
.me-friend-ico{font-size:26px;width:40px;height:40px;display:grid;place-items:center;background:#fff;border-radius:50%}
.me-friend small{color:var(--me-muted)}
.me-sec{background:rgba(255,255,255,.7);border:2px solid var(--me-line);border-radius:var(--me-r);padding:12px 14px 14px}
.me-h2{font:700 21px/1.2 var(--me-serif);margin:0 0 10px;color:#5a3418}
.me-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.me-card{display:flex;flex-direction:column;gap:4px;padding:12px;border-radius:18px;background:#fffdf7;border:2px solid var(--me-line);color:var(--me-ink);text-decoration:none;text-align:left;font:inherit;box-shadow:0 4px 0 var(--me-line)}
a.me-card,button.me-card{cursor:pointer}
a.me-card:active,button.me-card:active{transform:translateY(2px);box-shadow:0 2px 0 var(--me-line)}
.me-card h3{margin:0;font:700 18px var(--me-serif)}
.me-game-ico{font-size:30px;line-height:1}
.me-muted{color:var(--me-muted)}
.me-card small{font-size:13px}
.me-locked{opacity:.75;background:repeating-linear-gradient(135deg,#fffdf7 0 12px,#fbf1e3 12px 24px)}
.me-owned{background:var(--me-mint-s);border-color:#bfe6d2}
.me-empty{opacity:.8}
.me-can-collect{background:#fff4c2;border-color:var(--me-sun);animation:me-glow 2.4s ease-in-out infinite}
@keyframes me-glow{50%{box-shadow:0 4px 0 var(--me-sun),0 0 18px rgba(255,211,110,.8)}}
.me-needs-product{border-style:dashed;background:#fff}
.me-offer-img{width:100%;max-width:160px;aspect-ratio:1;object-fit:cover;border-radius:12px;background:var(--me-parch)}

/* doors */
.me-door-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
.me-door{appearance:none;display:grid;grid-template-columns:44px 1fr;grid-template-rows:auto auto;column-gap:8px;align-items:center;text-align:left;min-height:64px;padding:10px 12px;border-radius:18px;border:2px solid #f3c9a6;background:linear-gradient(180deg,#fff,#fff3e6);color:var(--me-ink);font:700 16px/1.2 var(--me-sans);cursor:pointer;box-shadow:0 4px 0 #f3c9a6}
.me-door:active{transform:translateY(2px);box-shadow:0 2px 0 #f3c9a6}
.me-door-ico{grid-row:1/3;font-size:28px;width:44px;height:44px;display:grid;place-items:center;background:var(--me-parch);border-radius:14px}
.me-door small{font-weight:600;color:var(--me-muted);font-size:13px}
.me-door.me-locked{border-color:#ddd0c4;box-shadow:0 4px 0 #ddd0c4}
.me-secret-door{border-color:#cdbdf2;background:linear-gradient(180deg,#fff,#f1ecff);box-shadow:0 4px 0 #cdbdf2}
.me-secret-hint{margin:10px 0 0;background:var(--me-lav-s);border-color:#d8cdf5;color:#3d2b7a;font-style:italic}
.me-hint{margin:0;color:#3d2b7a}
.me-steps{margin:4px 0;padding-left:20px}
.me-steps li{margin:2px 0}
.me-done{color:var(--me-ok)}
.me-quest[data-status=complete]{background:var(--me-mint-s)}
.me-q{font:600 17px/1.4 var(--me-serif);margin:0 0 8px}
.me-choices{display:flex;flex-wrap:wrap;gap:8px}
.me-feedback{min-height:1.4em;margin:8px 0 0;font-weight:700}
.me-feedback.ok{color:var(--me-ok)} .me-feedback.bad{color:var(--me-bad)}
.me-btn{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:48px;padding:10px 18px;border-radius:999px;border:0;background:var(--me-coral);color:#fff;font:800 16px/1.1 var(--me-sans);text-decoration:none;cursor:pointer;box-shadow:0 4px 0 var(--me-coral-d)}
.me-btn:active{transform:translateY(2px);box-shadow:0 2px 0 var(--me-coral-d)}
.me-btn[disabled]{opacity:.5;cursor:not-allowed}
.me-quiet{background:#fff;color:var(--me-ink);border:2px solid var(--me-line);box-shadow:0 4px 0 var(--me-line)}
.me-small{min-height:40px;font-size:14px;padding:8px 14px}
.me-choice{background:#fff;color:var(--me-ink);border:2px solid #f3c9a6;box-shadow:0 4px 0 #f3c9a6}
.me-grownups{background:#fff;border:2px dashed var(--me-line);border-radius:var(--me-r);padding:10px 14px}
.me-grownups summary{cursor:pointer;font-weight:800;min-height:40px;display:flex;align-items:center}
.me-home{flex-direction:column;align-items:flex-start}
.me-home p{margin:0 0 8px}
.me-list{margin:0;padding-left:20px}
.me-list li{margin:4px 0}
.me-linkish{appearance:none;background:none;border:0;padding:6px 0;color:var(--me-coral-d);font:inherit;text-decoration:underline;cursor:pointer;text-align:left;min-height:36px}
.me-error{max-width:560px;margin:40px auto;text-align:center}
.me-foot{text-align:center;color:var(--me-muted);font-size:13px;padding:6px 12px 22px}

/* sheets */
.me-sheet{position:fixed;inset:0;z-index:40;background:rgba(74,52,38,.38);display:flex;align-items:flex-end;justify-content:center}
.me-sheet-panel{width:100%;max-width:980px;max-height:92vh;max-height:92dvh;display:flex;flex-direction:column;background:var(--me-cream);border-radius:26px 26px 0 0;box-shadow:0 -10px 40px rgba(74,52,38,.25);padding-bottom:env(safe-area-inset-bottom)}
.me-sheet-small{max-width:520px}
.me-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px;border-bottom:2px solid var(--me-line)}
.me-sheet-title{margin:0;font:700 21px var(--me-serif)}
.me-sheet-body{overflow:auto;-webkit-overflow-scrolling:touch;padding:12px 14px 18px;display:block;flex:1 1 auto;min-height:0}
.me-sheet-body>*+*{margin-top:12px}
.me-input{min-height:48px;font-size:18px;padding:8px 12px;border-radius:14px;border:2px solid var(--me-line);width:8em;max-width:100%}
.me-gate-form{display:flex;gap:8px;flex-wrap:wrap}
.me-toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(14px + env(safe-area-inset-bottom));z-index:60;display:grid;gap:8px;width:min(92vw,520px);pointer-events:none}
.me-toast-item{background:#5a3418;color:#fff8ec;padding:12px 16px;border-radius:16px;font-weight:700;box-shadow:var(--me-shadow);transition:opacity .4s}
.me-toast-item.me-out{opacity:0}

/* map */
.me-map-tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch}
.me-tab{appearance:none;flex:none;min-height:44px;padding:8px 14px;border-radius:999px;border:2px solid var(--me-line);background:#fff;color:var(--me-ink);font:800 14px var(--me-sans);cursor:pointer}
.me-tab[aria-selected=true]{background:var(--me-coral);border-color:var(--me-coral);color:#fff}
.me-map-frame{background:linear-gradient(180deg,#fffdf7,#fff1df);border:2px solid var(--me-line);border-radius:var(--me-r);padding:6px;overflow:hidden}
.me-map-svg{display:block;width:100%;height:auto;max-height:58vh;touch-action:manipulation}
.me-edge{stroke:#e2b991;stroke-width:6;stroke-linecap:round}
.me-edge-secret{stroke:#b9a6ee;stroke-dasharray:10 10}
.me-edge-route{stroke:var(--me-coral);stroke-width:9;stroke-dasharray:2 14}
.me-node{cursor:pointer}
.me-node:focus{outline:none}
.me-node:focus .me-node-bg,.me-node.me-selected .me-node-bg{stroke:var(--me-lav);stroke-width:7}
.me-node-bg{fill:#fff;stroke:#e2b991;stroke-width:4}
.me-node-ico{font-size:30px;dominant-baseline:auto}
.me-node-label{font:800 17px var(--me-sans);fill:var(--me-ink);paint-order:stroke;stroke:#fffdf7;stroke-width:5px}
.me-node-badge{font-size:18px}
.me-node-chars{font-size:16px}
.me-current .me-node-bg{fill:#fff4c2;stroke:var(--me-coral);stroke-width:6}
.me-visited .me-node-bg{fill:var(--me-mint-s);stroke:#7cc4a2}
.me-discovered .me-node-bg{fill:#fff;stroke:#e2b991;stroke-dasharray:6 5}
.me-undiscovered .me-node-bg{fill:#efe5d8;stroke:#d6c5b1}
.me-undiscovered .me-node-label{fill:#9b8774}
.me-node-locked .me-node-bg{fill:#f3ece4}
.me-node-secret .me-node-bg{fill:var(--me-lav-s);stroke:#b9a6ee}
.me-legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 12px;font-size:13px}
.me-legend-item{display:flex;align-items:center;gap:6px}
.me-swatch{width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid #e2b991}
.me-current .me-swatch{background:#fff4c2;border-color:var(--me-coral)}
.me-visited .me-swatch{background:var(--me-mint-s);border-color:#7cc4a2}
.me-discovered .me-swatch{border-style:dashed}
.me-undiscovered .me-swatch{background:#efe5d8;border-color:#d6c5b1}
.me-node-locked .me-swatch{background:#f3ece4}
.me-edge-route .me-swatch{border-radius:3px;border-color:var(--me-coral);border-style:dotted}
.me-map-actions p{margin:0 0 8px}
.me-map-list{margin:6px 0 0;padding-left:18px}
.me-map-detail h3{margin:0}
.me-map-detail p{margin:4px 0}

@media (min-width:600px){ .me-brand span{display:inline} .me-label-sm{font-size:11px} }
@media (min-width:900px){
  .me-room-body{grid-template-columns:1fr 1fr;align-items:start}
  .me-room-body>.me-long,.me-room-body>#me-read-aloud,.me-room-body>.me-friends,.me-room-body>#me-doors,.me-room-body>#me-quests-here,.me-room-body>.me-home,.me-room-body>.me-grownups{grid-column:1/-1}
  .me-room-body>#me-read-aloud{justify-self:start}
  .me-sheet{align-items:center}
  .me-sheet-panel{border-radius:26px;max-height:88vh}
  .me-hero{display:grid;grid-template-columns:1.4fr 1fr}
  .me-hero-art{aspect-ratio:auto;max-height:none;min-height:300px}
  .me-hero-text{display:flex;flex-direction:column;justify-content:center;padding:20px 24px}
}
@media (prefers-reduced-motion:reduce){ *{animation:none!important;transition:none!important} }
/* LIEUTENANT VIPER / SuperGrok */
