﻿:root{--wall:#173b3c;--paper:#fff8e8;--ink:#203736;--muted:#526561;--red:#a53224;--rule:#bcbcac;--focus:#ffd36e;--fast:180ms;--react:220ms;--final:320ms;--space:24px;font-family:"Malgun Gothic","Apple SD Gothic Neo",sans-serif;color:var(--ink);background:var(--wall);font-synthesis:none}*{box-sizing:border-box}body{margin:0;word-break:keep-all;overflow-wrap:anywhere}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{min-height:44px;padding:10px 16px;border:1px solid currentColor;border-radius:0;background:transparent;color:inherit;cursor:pointer;touch-action:manipulation;line-height:1.5}button:hover{background:#20373610}button:active{transform:translateY(1px);background:#20373620}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--red);outline-offset:3px}header button:focus-visible,footer button:focus-visible{outline-color:var(--focus)}a{color:inherit}header{max-width:1200px;margin:auto;padding:16px max(24px,env(safe-area-inset-right)) 16px max(24px,env(safe-area-inset-left));color:var(--paper);display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;border-bottom:1px solid #fff8e833}.brand{font-family:Batang,serif;display:flex;align-items:center;gap:8px;font-size:26px;text-decoration:none;font-weight:bold}.brand span{font:13px "Malgun Gothic",sans-serif}.brand img{border-radius:0}nav{display:flex;gap:4px;flex-wrap:wrap}nav button{font-size:14px;border-color:transparent;padding:8px 12px}nav button[aria-current=true]{border-bottom-color:var(--paper)}main{max-width:1120px;margin:32px auto;min-height:calc(100svh - 200px)}p{line-height:1.7}h1,h2{font-family:Batang,"AppleMyungjo",serif;word-break:keep-all;overflow-wrap:anywhere}h1{font-size:42px;line-height:1.25;margin:8px 0 20px;letter-spacing:-1.5px}h2{font-size:26px;line-height:1.4;margin:12px 0}.eyebrow{font-size:13px;letter-spacing:2px;text-transform:uppercase;margin:0;color:var(--muted)}.workspace{display:grid;grid-template-columns:0.9fr 1.1fr;align-items:start;gap:0}.theatre{color:var(--paper);padding:32px 32px 0 0;position:relative}.theatre .eyebrow{color:#c7d7cf}.theatre h1{font-size:48px}.stage{width:100%;height:280px;display:block}.stage .clerk{transform-origin:170px 170px}.react .clerk{animation:clerk var(--react) ease-out}.prop-label{font-size:14px;text-align:right;border-bottom:1px solid #fff8e866;padding-bottom:12px;margin-top:0}.scene{font-size:16px;line-height:1.7;margin:16px 0;color:#dce6df}.sheet{background:var(--paper);padding:32px;position:relative;box-shadow:8px 8px 0 #0b2527;min-width:0}.sheet:before{content:"";display:block;width:36px;height:5px;background:var(--red);margin-bottom:24px}.quote{font-family:Batang,"AppleMyungjo",serif;font-size:26px;line-height:1.6;margin:16px 0 24px;word-break:keep-all;overflow-wrap:anywhere}.choices{display:grid;grid-template-columns:1fr 1fr;gap:8px}.choices button{text-align:left;min-height:60px;font-size:16px;border-color:var(--rule);padding:12px}.choices button:hover{border-color:var(--red)}.choices button::before{content:attr(data-number);display:block;color:var(--red);font-size:12px;margin-bottom:4px}.small{font-size:13px;color:var(--muted)}.rule{border-top:1px solid var(--rule);padding-top:16px}.reply{font-size:23px;line-height:1.7;font-family:Batang,serif;word-break:keep-all}.reply-sheet{animation:reveal var(--fast) ease-out}.primary{background:var(--ink);border-color:var(--ink);color:var(--paper)}.primary:hover{background:var(--wall)}.wide{width:100%;margin-top:16px}.memory{font-size:14px;border-left:2px solid var(--red);padding-left:12px;color:var(--muted)}.utility{background:var(--paper);padding:32px;max-width:850px;margin:auto}.utility>p{max-width:65ch}.rows{margin-top:24px;border-top:2px solid var(--ink)}.row{width:100%;border:0;border-bottom:1px solid var(--rule);display:flex;gap:16px;justify-content:space-between;text-align:left;align-items:center;padding:16px 0;min-height:64px}.row b{display:block;font-size:18px}.row small{display:block;font-size:13px;color:var(--muted);margin-top:4px}.row .arrow{font-size:24px}.receipt-layout{max-width:850px;margin:auto}.receipt{background:var(--paper);padding:32px;border-top:8px solid var(--red);box-shadow:8px 8px 0 #0b2527;position:relative;overflow-wrap:anywhere}.receipt h1{font-size:36px}.receipt .meta{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:13px;border-bottom:1px solid var(--rule);padding-bottom:16px}.receipt ol{padding-left:24px}.receipt li{padding:16px 0;border-bottom:1px solid var(--rule);line-height:1.65}.receipt li p{margin:8px 0}.receipt .chosen{font-weight:bold}.receipt .original-line{font-size:14px;color:var(--muted)}.seal{display:inline-block;color:var(--red);border:3px double var(--red);padding:8px 16px;font-size:18px;font-weight:bold;transform:rotate(-4deg);margin:16px 0}.final .seal{animation:stamp var(--final) ease-out}.annotation{margin-top:24px;border-top:2px dashed var(--red);padding-top:16px}.annotation h2{font-size:22px}.annotation time{font-size:13px;color:var(--muted)}.controls{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0;color:var(--paper)}.controls button:hover{background:#fff8e822}.utility .controls{color:var(--ink)}label{display:block;margin:24px 0 8px;font-weight:bold}input[type=file]{width:100%;min-height:48px;font-size:14px;padding:8px;border:1px solid var(--rule)}input[type=file]::file-selector-button{min-height:44px;padding:8px;margin-right:8px}#preview{border-top:1px solid var(--rule);margin-top:24px;padding-top:16px;overflow-wrap:anywhere}#notice:empty{display:none}#notice{max-width:850px;margin:24px auto;background:var(--focus);color:var(--ink);padding:16px;line-height:1.6}footer{max-width:1120px;margin:24px auto;padding-bottom:max(16px,env(safe-area-inset-bottom));display:flex;justify-content:space-between;align-items:center;gap:16px;color:#dce6df;font-size:13px}footer button{font-size:13px;border:0}#update{background:var(--focus);padding:16px;text-align:center}#update button{margin-left:16px}dialog{max-width:520px;width:calc(100% - 32px);max-height:90svh;overflow:auto;border:0;padding:24px;background:var(--paper);color:var(--ink)}dialog::backdrop{background:#001d20b3}dialog p{font-size:16px}.error{border-left:4px solid var(--red);padding-left:16px}details{margin-top:24px}summary{min-height:44px;cursor:pointer;padding:12px 0}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}#focus:focus{outline:none}@keyframes reveal{from{transform:translateY(8px)}to{transform:none}}@keyframes clerk{50%{transform:rotate(-3deg)}to{transform:none}}@keyframes stamp{from{transform:scale(1.15) rotate(-4deg);opacity:.5}to{transform:scale(1) rotate(-4deg);opacity:1}}
@media(max-width:1190px){main,footer{margin-left:24px;margin-right:24px}}@media(max-width:700px){:root{--space:16px}header{padding:8px max(16px,env(safe-area-inset-right)) 8px max(16px,env(safe-area-inset-left));gap:4px}.brand{font-size:22px}.brand span{display:none}.brand img{width:30px;height:30px}nav button{font-size:13px;padding:8px}.workspace{display:block}.theatre{padding:0;display:grid;grid-template-columns:1fr 112px;column-gap:8px}.theatre .eyebrow{grid-column:1;font-size:11px;align-self:end}.theatre h1{font-size:29px;margin:8px 0 12px;grid-column:1}.stage{grid-column:2;grid-row:1/4;height:100px;align-self:center}.prop-label{grid-column:1;text-align:left;font-size:12px;margin:0;border:0;padding:0}.scene{grid-column:1/-1;margin:12px 0 16px;font-size:15px}main{margin:20px 16px;min-height:calc(100svh - 164px)}.sheet{padding:20px;box-shadow:4px 4px 0 #0b2527}.sheet:before{margin-bottom:12px}.quote{font-size:21px;margin:12px 0 20px;line-height:1.65}.choices button{font-size:15px;padding:10px;min-height:64px}.small{font-size:13px}.reply{font-size:21px}.utility,.receipt{padding:24px 20px}.utility h1,.receipt h1{font-size:29px}.row b{font-size:17px}.row{gap:8px}.receipt li{padding:12px 0}.receipt ol{padding-left:20px}.receipt .meta{font-size:12px}.receipt .original-line{font-size:14px}footer{margin:16px;gap:8px;flex-wrap:wrap}#notice{margin:16px}.memory{font-size:13px}#update button{margin:8px 0 0}h1{font-size:30px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}button:active{transform:none}}
@media print{header,footer,#notice,#update,.controls,dialog{display:none!important}body{background:white}main{margin:0}.receipt{box-shadow:none;border-top:3px solid black}.annotation{break-inside:avoid}}
