:root{--bg: #122018;--bg-raised: #1b2c22;--ink: #f3ebe0;--muted: #c7bbaa;--brass: #c9a45c;--brass-deep: #9b7a32;--danger: #d4654a;--ok: #7fbf8a;--line: rgba(243, 235, 224, .12);--shadow: 0 18px 50px rgba(0, 0, 0, .28);--sans: "Figtree", "Avenir Next", "Segoe UI", sans-serif;--serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:var(--sans)}body{min-height:100dvh}button,input,textarea,select{font:inherit}#app{min-height:100dvh;padding:calc(20px + var(--safe-top)) 20px calc(24px + var(--safe-bottom))}.view{display:none;max-width:440px;margin:0 auto}.view.active{display:flex;flex-direction:column;gap:18px;min-height:calc(100dvh - 44px - var(--safe-top) - var(--safe-bottom))}.eyebrow{margin:0;color:var(--brass);letter-spacing:.16em;text-transform:uppercase;font-size:.72rem;font-weight:700}h1,.phase-name{margin:0;font-family:var(--serif);font-weight:500;letter-spacing:-.03em;line-height:1.05}h1{font-size:clamp(2.1rem,8vw,2.8rem)}.lede,.hint,label span,.meta{color:var(--muted);line-height:1.45}.lede{margin:0;font-size:1.05rem}.stack{display:grid;gap:12px}label{display:grid;gap:6px;font-size:.92rem}input,textarea,select{width:100%;border:1px solid var(--line);background:var(--bg-raised);color:var(--ink);border-radius:14px;padding:14px;outline:none}textarea{min-height:88px;resize:vertical}input:focus,textarea:focus,select:focus{border-color:var(--brass)}.placements{display:grid;gap:8px}.choice{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--bg-raised)}.choice input{width:auto;margin-top:3px}.choice strong{display:block;font-size:.98rem}.choice span{display:block;color:var(--muted);font-size:.86rem}.actions{margin-top:auto;display:grid;gap:10px}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:999px;padding:16px 18px;font-weight:700;letter-spacing:.01em}.btn.primary{background:var(--brass);color:#1a1408}.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}.btn:disabled{opacity:.45}.level-card,.brief-card,.record-card{background:var(--bg-raised);border:1px solid var(--line);border-radius:22px;padding:18px;box-shadow:var(--shadow)}.level-wrap{display:grid;justify-items:center;gap:10px}.level{width:min(72vw,260px);height:min(72vw,260px);border-radius:50%;border:1px solid var(--line);background:radial-gradient(circle at center,rgba(201,164,92,.08),transparent 46%),#101a14;position:relative;overflow:hidden}.level-cross,.level-cross:after{position:absolute;inset:50% auto auto 8%;width:84%;height:1px;background:#f3ebe02e}.level-cross:after{content:"";inset:auto auto auto 50%;width:1px;height:84%;top:8%;left:50%}.bubble{position:absolute;width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:50%;background:var(--brass);box-shadow:0 0 0 8px #c9a45c29;left:50%;top:50%;transition:left 80ms linear,top 80ms linear}.status{margin:0;font-weight:700}.status.ok{color:var(--ok)}.status.warn{color:var(--brass)}.status.bad{color:var(--danger)}.brief-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.brief-list li{display:flex;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--line)}.brief-list li:last-child{border-bottom:0;padding-bottom:0}.toggle{display:flex;align-items:center;gap:10px}.toggle input{width:auto}.record-view{text-align:center}.phase-name{font-size:clamp(2.4rem,11vw,3.6rem)}.clock{font-variant-numeric:tabular-nums;font-size:clamp(3.4rem,16vw,5rem);font-weight:650;letter-spacing:-.04em;margin:8px 0 0}.progress{height:6px;border-radius:999px;background:#f3ebe01a;overflow:hidden}.progress>span{display:block;height:100%;width:0;background:var(--brass)}.pulse{display:inline-flex;align-items:center;gap:8px;color:var(--danger);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.78rem}.pulse i{width:8px;height:8px;border-radius:50%;background:var(--danger);animation:pulse 1.1s ease-in-out infinite}@keyframes pulse{50%{opacity:.25}}.abort{margin-top:8px;background:none;border:0;color:var(--muted);text-decoration:underline;padding:8px}.upload-state{min-height:40vh;display:grid;align-content:center;gap:12px;text-align:center}.hidden{display:none!important}
