:root{--vellum:#eee6d3;--vellum-light:#f6f0e2;--paper:#fffaf0;--ink:#2a2018;--ink-muted:#5b4d3d;--azure:#1f3a6e;--azure-ink:#f6f0e2;--azure-dim:#b8c6dc;--azure-line:#6f86ad;--madder:#8a2b26;--madder-wash:#f3e1dc;--gilt:#c9a54e;--gilt-light:#e7d29a;--gilt-line:#a8873f;--oak:#6b5536;--display:"Cormorant Garamond", Garamond, Georgia, serif;--text:"EB Garamond", Garamond, Georgia, serif;--radius:6px;--touch:44px}*{box-sizing:border-box}html,body{background:var(--vellum);height:100%;color:var(--ink);font-family:var(--text);-webkit-text-size-adjust:100%;margin:0;font-size:18px}#app{min-height:100%}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}:focus-visible{outline:3px solid var(--gilt);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--ink-muted)}.small-caps{font-variant:small-caps;letter-spacing:.1em}.splash,.play{min-height:100dvh;box-shadow:inset 0 0 0 2px var(--oak), inset 0 0 0 6px var(--vellum), inset 0 0 0 7px var(--gilt-line);padding:max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left))}.btn{min-height:var(--touch);border-radius:var(--radius);border:1px solid var(--azure);background:var(--vellum-light);color:var(--azure);padding:0 14px;font-weight:600}.btn.primary{background:var(--azure);color:var(--azure-ink);border-color:var(--gilt)}.btn.gilt{background:var(--gilt);color:#1b140e;border-color:var(--gilt)}.btn.link{color:var(--ink-muted);background:0 0;border:0;font-weight:500}.btn.wide,.btn.span2{width:100%}.btn:disabled{opacity:.55}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{min-height:var(--touch);border-radius:var(--radius);border:1px solid var(--gilt);background:var(--vellum-light);color:var(--ink);padding:0 14px;font-weight:500}.chip[aria-pressed=true]{background:var(--gilt);color:#1b140e}.chip:disabled{color:var(--ink-muted);background:0 0;border-style:dashed}.label{font-variant:small-caps;letter-spacing:.12em;color:var(--ink-muted)}.splash{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex}.title{font-family:var(--display);color:var(--azure);margin:0;font-size:44px;font-weight:600}.fleuron{width:min(320px,80%);color:var(--gilt-line);align-items:center;gap:8px;display:flex}.fleuron .rule{background:var(--gilt-line);flex:1;height:1px}.card{border:1px solid var(--gilt-line);border-radius:var(--radius);background:var(--vellum-light);text-align:left;flex-direction:column;gap:12px;width:min(360px,100%);padding:20px;display:flex}.card h2{font-family:var(--display);color:var(--azure);margin:0;font-size:26px}.card p{margin:0}.showtime{font-family:var(--display);color:var(--ink);margin:0;font-size:22px}.showtime strong{font-variant-numeric:lining-nums tabular-nums;color:var(--madder)}.or{text-align:center;margin:0;font-style:italic}.notice{color:var(--madder);margin:0;font-weight:600}.pronouns,.login-form,.field{flex-direction:column;gap:8px;display:flex}input,select{min-height:var(--touch);border-radius:var(--radius);border:1px solid var(--gilt-line);background:var(--paper);color:var(--ink);padding:0 12px;font-size:17px}.play{grid-template-rows:auto 1fr auto auto;grid-template-areas:"header""scene""reach""composer";height:100dvh;display:grid}.play-header{border-bottom:1px solid var(--gilt-line);flex-direction:column;grid-area:header;padding:8px 52px 6px 10px;display:flex;position:relative}.room-name{font-family:var(--display);color:var(--azure);margin:0;font-size:30px;font-weight:600;line-height:1.05}.sound-toggle{color:var(--ink-muted);border-color:#0000;position:absolute;top:4px;right:4px}.scene{grid-area:scene;padding:10px;line-height:1.5;overflow-y:auto}.desc{margin:0 0 10px}.scene>.desc:first-child:first-letter{float:left;background:var(--azure);border:2px solid var(--gilt);font-family:var(--display);color:var(--azure-ink);margin:4px 8px 0 0;padding:2px 8px;font-size:44px;font-weight:600;line-height:1}.thing,.person{color:var(--azure);background:0 0;border:0;border-bottom:1.5px solid;padding:0;font-weight:600}.person{color:var(--madder)}.log{border-top:1px solid var(--gilt-line);padding-top:8px}.entry{white-space:pre-line;margin:0 0 8px}.entry.art{white-space:pre;font-family:ui-monospace,Courier New,monospace;font-size:11px;line-height:1.25;overflow-x:auto}.reach,.composer{background:var(--azure);color:var(--azure-ink);padding:8px 12px}.reach{border-top:4px double var(--gilt);flex-direction:column;grid-area:reach;gap:8px;max-height:34vh;display:flex;overflow-y:auto}.reach .label{color:var(--gilt-light)}.reach-head{align-items:center;gap:8px;display:flex}.reach-head .label{margin-right:auto}.reach-head .label,.reach-head .link{white-space:nowrap}.link{min-height:var(--touch);color:var(--gilt-light);background:0 0;border:0;padding:0 4px;text-decoration:underline}.person-chip{background:var(--madder-wash);color:var(--madder);font-weight:600}.empty{color:var(--azure-dim);font-style:italic}.composer{flex-direction:column;grid-area:composer;gap:8px;padding-bottom:10px;display:flex}.composer-row{align-items:center;gap:8px;display:flex}.composer-row input{flex:1;min-width:0}.composer .btn{border-color:var(--gilt)}.composer .btn.tone{flex-shrink:0}.target select{width:100%}.hint{color:var(--gilt-light);margin:0;font-size:15px;font-style:italic}.sheet-backdrop{z-index:10;background:#2a20188c;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--vellum-light);border-top:4px double var(--gilt-line);width:100%;max-height:85dvh;padding:10px 18px max(18px, env(safe-area-inset-bottom));border-radius:14px 14px 0 0;flex-direction:column;gap:12px;display:flex;overflow-y:auto}.grabber{background:var(--gilt-line);border-radius:999px;align-self:center;width:40px;height:5px}.sheet h2{font-family:var(--display);color:var(--azure);margin:0;font-size:28px;font-weight:600}.sheet-title{align-items:center;gap:10px;display:flex}.tag{font-variant:small-caps;color:var(--ink-muted);border:1px solid var(--gilt-line);border-radius:4px;padding:0 8px}.grid2{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.grid2 .span2{grid-column:span 2}.sentence{border:1px solid var(--gilt);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:6px;padding:6px;display:flex}.token{background:var(--azure);color:var(--azure-ink);border-radius:4px;padding:4px 10px;font-weight:600}.blank{border-bottom:2px solid var(--gilt-line);min-width:60px;color:var(--ink-muted);font-style:italic}.icon-btn{width:var(--touch);height:var(--touch);border-radius:var(--radius);border:1px solid var(--gilt-line);background:0 0}@media (orientation:landscape) and (height<=600px){.play{grid-template:"header reach""scene reach"1fr"composer reach"/minmax(0,1fr) 300px;column-gap:8px}.play-header{flex-direction:row;align-items:baseline;gap:12px;padding:4px 52px 4px 10px}.room-name{font-size:24px}.reach{border-top:0;border-left:4px double var(--gilt);max-height:none}.reach-head{flex-wrap:wrap}.reach-head .exits{flex:1 0 100%}.composer{color:var(--ink);border-top:1px solid var(--gilt-line);background:0 0;padding:6px 10px}.composer .hint{color:var(--ink-muted)}.sheet-backdrop{justify-content:flex-end;align-items:stretch}.sheet{border-top:0;border-left:4px double var(--gilt-line);border-radius:0;width:340px;max-height:none}.grabber{display:none}}
