:root{--ink: #37123C;--ink-soft: #5B4A60;--ink-mute: #7A6A80;--ground: #DDD8E8;--ground-2: #EFEDF6;--card: #ffffff;--line: rgba(55, 18, 60, .13);--teal: #2E8F8A;--gold: #DDA77B;--mauve: #945D5E;--pass: #16745F;--pass-bg: #E4F2ED;--warn: #96601B;--warn-bg: #FBF0DF;--fail: #99312F;--fail-bg: #FBE7E6;--display: "Barlow Semi Condensed", sans-serif;--body: "Outfit", sans-serif;--serif: "Source Serif 4", Georgia, serif;--radius: 14px}*{margin:0;padding:0;box-sizing:border-box}body{min-height:100vh;background:linear-gradient(170deg,var(--ground-2) 0%,var(--ground) 100%);background-attachment:fixed;font-family:var(--body);color:var(--ink);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}#app.loading{padding:60px;color:var(--ink-mute)}.wrap{max-width:1180px;margin:0 auto;padding:30px 22px 80px}.masthead{display:flex;align-items:flex-start;gap:18px;flex-wrap:wrap;margin-bottom:22px}.masthead-main{flex:1 1 340px}.brandline{display:flex;align-items:center;gap:10px;margin-bottom:14px}.brand-name{font-family:var(--display);font-weight:800;letter-spacing:3px;font-size:17px}.brand-prod{font-size:12.5px;color:var(--mauve);letter-spacing:1px}h1{font-family:var(--serif);font-weight:900;font-size:34px;line-height:1.05;letter-spacing:-.01em}.subtitle{color:var(--ink-soft);font-size:15px;margin-top:7px;max-width:62ch}.status-chip{display:inline-flex;align-items:center;gap:9px;padding:9px 16px;border-radius:999px;font-weight:600;font-size:13.5px;letter-spacing:.02em;border:1px solid transparent;white-space:nowrap}.status-chip .dot{width:9px;height:9px;border-radius:50%;background:currentColor}.status-pass{background:var(--pass-bg);color:var(--pass);border-color:#16745f40}.status-warn{background:var(--warn-bg);color:var(--warn);border-color:#96601b40}.status-fail{background:var(--fail-bg);color:var(--fail);border-color:#99312f40}.status-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.built{font-size:12.5px;color:var(--ink-mute)}.editions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:16px}.editions-label{font-size:11px;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-mute);font-weight:600}.edition{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-family:var(--display);font-weight:600;font-size:15px;letter-spacing:.03em;padding:7px 15px;border-radius:10px;border:1px solid var(--line);background:#fff9;color:var(--ink-soft)}.edition[aria-pressed=true]{background:var(--card);border-color:var(--teal);color:var(--ink);box-shadow:0 0 0 1px var(--teal) inset}.edition-status{width:8px;height:8px;border-radius:50%}.status-dot-pass{background:var(--pass)}.status-dot-warn{background:var(--warn)}.status-dot-fail{background:var(--fail)}.edition-note{font-size:12.8px;color:var(--ink-mute);flex:1 1 260px;min-width:0;line-height:1.35}.specs{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-bottom:26px}.spec{background:var(--card);padding:13px 15px}.spec dt{font-size:11px;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-mute);font-weight:600}.spec dd{font-family:var(--display);font-weight:700;font-size:20px;margin-top:3px;letter-spacing:.01em}.spec dd small{font-family:var(--body);font-weight:500;font-size:12.5px;color:var(--ink-mute);display:block;letter-spacing:0}.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:20px}.tab{font-family:var(--display);font-weight:600;font-size:15.5px;letter-spacing:.04em;padding:8px 16px;border-radius:999px;border:1px solid var(--line);background:#ffffff8c;color:var(--ink-soft);cursor:pointer;transition:background .14s ease,color .14s ease,border-color .14s ease}.tab:hover{background:#fff}.tab[aria-selected=true]{background:var(--ink);color:#fff;border-color:var(--ink)}.tab .count{opacity:.65;font-size:13px;margin-left:5px}.panel{display:none}.panel.active{display:block;animation:fade .16s ease}@keyframes fade{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;margin-bottom:14px}.card h2{font-family:var(--display);font-weight:700;font-size:19px;letter-spacing:.02em}.card h3{font-family:var(--display);font-weight:700;font-size:16px;letter-spacing:.02em;margin-bottom:6px}.card p{color:var(--ink-soft);font-size:14.2px}.card+.card--tight{margin-top:-4px}.lede{color:var(--ink-soft);font-size:14.5px;margin-bottom:16px;max-width:78ch}.check{display:flex;gap:14px;align-items:flex-start}.check+.check{margin-top:0}.badge{flex:none;margin-top:2px;width:74px;text-align:center;padding:4px 0;border-radius:7px;font-family:var(--display);font-weight:700;font-size:12px;letter-spacing:.1em;text-transform:uppercase}.badge-pass{background:var(--pass-bg);color:var(--pass)}.badge-warn{background:var(--warn-bg);color:var(--warn)}.badge-fail{background:var(--fail-bg);color:var(--fail)}.check-body{flex:1;min-width:0}.check-title{font-weight:600;font-size:15px}.check-detail{color:var(--ink-soft);font-size:14px;margin-top:3px}.pagelinks{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}.pagelink{font-family:var(--display);font-weight:600;font-size:12.5px;letter-spacing:.03em;padding:2px 8px;border-radius:6px;border:1px solid var(--line);background:var(--ground-2);color:var(--ink-soft);cursor:pointer}.pagelink:hover{background:var(--ink);color:#fff;border-color:var(--ink)}.more{font-size:12.5px;color:var(--ink-mute);align-self:center}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px}.filters{display:flex;gap:6px;flex-wrap:wrap}.chip{font-size:13px;font-weight:500;padding:6px 13px;border-radius:999px;border:1px solid var(--line);background:#fff9;color:var(--ink-soft);cursor:pointer}.chip[aria-pressed=true]{background:var(--teal);border-color:var(--teal);color:#fff;font-weight:600}.chip .n{opacity:.7;margin-left:4px;font-size:12px}.guide-toggle{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--ink-soft)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:16px}.page-card{background:none;border:0;padding:0;cursor:pointer;text-align:left;font:inherit;color:inherit}.page-card:focus-visible{outline:2px solid var(--teal);outline-offset:4px}.sheet{position:relative;background:repeating-linear-gradient(45deg,#ede7f2 0,#ede7f2 4px,#e4dcec 4px,#e4dcec 8px);border-radius:3px;box-shadow:0 2px 10px #37123c29;overflow:hidden}.sheet img{display:block;width:100%;height:auto}.sheet-inner{position:relative}.guides .trim-line{position:absolute;top:0;right:0;bottom:0;left:0;outline:1px dashed rgba(46,143,138,.9);outline-offset:-1px;pointer-events:none}.guides .safe-line{position:absolute;border:1px dashed rgba(153,49,47,.55);pointer-events:none}.spine-mark{position:absolute;top:0;bottom:0;width:3px;background:repeating-linear-gradient(180deg,var(--ink) 0 5px,transparent 5px 10px);opacity:.5}.page-meta{display:flex;align-items:baseline;gap:6px;margin-top:8px}.page-no{font-family:var(--display);font-weight:700;font-size:14px}.page-side{font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-mute);font-weight:600}.page-label{font-size:12.3px;color:var(--ink-soft);line-height:1.3;margin-top:1px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.flag{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--warn);margin-left:2px}.reader-bar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:14px}.reader-bar .btn{padding:7px 15px}.reader-input{width:74px;font:inherit;font-size:15px;font-variant-numeric:tabular-nums;text-align:center;padding:7px 8px;border:1px solid var(--line);border-radius:9px;background:var(--card);color:var(--ink)}.reader-total{font-size:13.5px;color:var(--ink-mute);margin-right:6px}.reader-card{padding:16px;background:linear-gradient(180deg,var(--ground-2),var(--ground))}.reader-host{position:relative;height:min(74vh,900px);aspect-ratio:1080 / 1398;width:auto;margin:0 auto;background:var(--ground-2);border-radius:8px;overflow:hidden;box-shadow:0 4px 20px #37123c24}.reader-frame{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0;background:#fff}.reader-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;margin-top:12px;font-size:13.5px}.reader-modes{display:inline-flex;gap:4px;margin-left:4px}.reader-spread{display:flex;justify-content:center;align-items:stretch;gap:0}.reader-spread .reader-host{height:min(64vh,780px);border-radius:0;box-shadow:none;margin:0}.reader-host--left{border-radius:6px 0 0 6px;box-shadow:-3px 3px 14px #37123c21}.reader-host--right{border-radius:0 6px 6px 0;box-shadow:3px 3px 14px #37123c21}.reader-host--left:after,.reader-host--right:after{content:"";position:absolute;top:0;bottom:0;width:26px;z-index:2;pointer-events:none}.reader-host--left:after{right:0;background:linear-gradient(to right,transparent,rgba(55,18,60,.13))}.reader-host--right:after{left:0;background:linear-gradient(to left,transparent,rgba(55,18,60,.13))}.reader-host--empty{background:repeating-linear-gradient(45deg,#ede9f3 0,#ede9f3 6px,#e7e2ef 6px,#e7e2ef 12px)}.reader-host--empty:after{display:none}.reader-host--empty .reader-frame{visibility:hidden}.reader-meta-pair{display:flex;width:100%;gap:18px}.reader-meta-side{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:2px}.reader-meta-side--right{text-align:right;align-items:flex-end}.reader-health{width:100%;margin-top:6px}.reader-label{font-family:var(--display);font-weight:700;font-size:16px;letter-spacing:.02em}.reader-facts{color:var(--ink-mute)}.reader-ok{color:var(--pass);font-weight:600}.reader-warn{color:var(--warn);font-weight:600}.lab-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px 20px}.lab-field{display:block;font-size:12.5px;color:var(--ink-mute)}.lab-field>span{display:block;margin-bottom:5px;letter-spacing:.04em;text-transform:uppercase;font-weight:600;font-size:11px}.lab-field b{color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:0;text-transform:none;font-size:12.5px}.lab-field select,.lab-field input[type=range]{width:100%}.lab-field select{font:inherit;font-size:14px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--ground-2);color:var(--ink)}.lab-field input[type=range]{accent-color:var(--teal)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1e0a228c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;padding:24px;z-index:20}.modal{background:var(--card);border-radius:18px;max-width:860px;width:100%;max-height:90vh;overflow:auto;padding:24px;display:grid;grid-template-columns:minmax(0,300px) 1fr;gap:24px}.modal h2{font-family:var(--serif);font-weight:900;font-size:24px;line-height:1.15}.modal .close{position:absolute;top:18px;right:20px;background:none;border:0;font-size:26px;line-height:1;color:#fff;cursor:pointer}.kv{display:grid;grid-template-columns:auto 1fr;gap:5px 16px;font-size:13.8px;margin-top:14px}.kv dt{color:var(--ink-mute)}.kv dd{font-variant-numeric:tabular-nums}.diagram{width:100%;max-width:288px;height:auto;overflow:visible;display:block;margin:0 auto}.diagram--wide{max-width:620px;margin-top:10px}.diagram text{font-family:var(--body);font-size:11px;fill:var(--ink-soft)}.diagram .dim{fill:var(--mauve);font-size:10.5px}.diagram .lbl{font-family:var(--display);font-weight:700;font-size:13px;fill:var(--ink);letter-spacing:.04em}.fields{display:grid;gap:14px}.field label{display:block;font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-mute);font-weight:600;margin-bottom:5px}#build-key{font:inherit;font-size:14px;padding:9px 12px;min-width:210px;border:1px solid var(--line);border-radius:9px;background:var(--ground-2);color:var(--ink)}.btn:disabled{opacity:.5;cursor:progress}.field input,.field textarea{width:100%;font:inherit;font-size:14.5px;color:var(--ink);background:var(--ground-2);border:1px solid var(--line);border-radius:9px;padding:9px 12px;resize:vertical}.field input:focus,.field textarea:focus{outline:2px solid var(--teal);outline-offset:-1px;background:#fff}.field .hint{font-size:12.3px;color:var(--ink-mute);margin-top:4px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:4px}.btn{font-family:var(--display);font-weight:600;font-size:14.5px;letter-spacing:.04em;padding:9px 18px;border-radius:9px;border:1px solid var(--ink);background:var(--ink);color:#fff;cursor:pointer}.btn.secondary{background:transparent;color:var(--ink)}.btn:hover{opacity:.9}.saved{font-size:13px;color:var(--pass);font-weight:600}.stage{display:grid;grid-template-columns:30px 1fr;gap:14px;padding:14px 0;border-top:1px solid var(--line)}.stage:first-of-type{border-top:0}.stage-n{font-family:var(--display);font-weight:700;font-size:17px;color:var(--teal)}code,.cmd{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.8px;background:var(--ground-2);border:1px solid var(--line);border-radius:7px;padding:2px 7px}.cmd{display:block;padding:9px 12px;margin-top:7px;overflow-x:auto;white-space:pre}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line)}th{font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-mute);font-weight:600}td.num{font-variant-numeric:tabular-nums}ul.plain{list-style:none;display:grid;gap:8px}ul.plain li{display:flex;gap:9px;font-size:14.2px;color:var(--ink-soft)}ul.plain li:before{content:"·";color:var(--teal);font-weight:700}.foot{margin-top:34px;font-size:12.5px;color:var(--ink-mute);letter-spacing:.4px}.foot a{color:var(--teal)}.edit-bar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:8px}.edit-bar .btn{padding:7px 15px}.edit-bar select{font:inherit;font-size:14px;padding:7px 10px;border:1px solid var(--line);border-radius:9px;background:var(--card);color:var(--ink);max-width:min(420px,100%)}.edit-density,.edit-draft{font-size:13px;color:var(--ink-mute)}.edit-draft{font-weight:600}.edit-save-group{display:inline-flex;gap:8px;margin-left:auto;flex-wrap:wrap}.edit-save-group input{font:inherit;font-size:14px;padding:7px 10px;border:1px solid var(--line);border-radius:9px;width:140px}.edit-save-status{font-size:13.5px;min-height:0;margin-bottom:6px}.edit-save-status:empty{display:none}.wrap--wide{max-width:none;padding-left:clamp(16px,2vw,32px);padding-right:clamp(16px,2vw,32px)}.edit-grid{display:grid;grid-template-columns:minmax(380px,560px) minmax(0,1fr);gap:16px;align-items:start}.edit-text{padding:14px;max-height:calc(100vh - 150px);overflow-y:auto}.edit-preview{padding:14px 16px 16px;background:linear-gradient(180deg,var(--ground-2),var(--ground));position:sticky;top:12px}.edit-view-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:10px}.edit-view-bar .reader-modes{margin:0 6px 0 0}.edit-preview .edit-host{height:auto;aspect-ratio:var(--ratio, .7725);width:min(100%,calc((100vh - 230px) * var(--ratio, .7725)));margin:0 auto}#app:fullscreen{background:linear-gradient(170deg,var(--ground-2) 0%,var(--ground) 100%);overflow:hidden}#app:fullscreen .wrap{max-width:none;height:100vh;padding:12px 16px;display:flex;flex-direction:column}#app:fullscreen .masthead,#app:fullscreen .editions,#app:fullscreen .specs,#app:fullscreen .tabs,#app:fullscreen .foot,#app:fullscreen #panel-edit>.lede,#app:fullscreen .panel:not(.active){display:none}#app:fullscreen #panel-edit{flex:1;min-height:0;display:flex;flex-direction:column}#app:fullscreen .edit-shell{flex:1;min-height:0;display:flex;flex-direction:column}#app:fullscreen .edit-grid{flex:1;min-height:0;align-items:stretch}#app:fullscreen .edit-text{max-height:none;height:100%}#app:fullscreen .edit-preview{position:static;height:100%;display:flex;flex-direction:column;min-height:0}#app:fullscreen .edit-preview .edit-host{flex:1;min-height:0;width:100%;aspect-ratio:auto}.ed-block+.ed-block{margin-top:12px}.ed-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}.ed-kind{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;color:var(--ink-mute)}.ed-chips{display:inline-flex;flex-wrap:wrap;gap:4px}.ed-chip{font-size:11.5px;padding:1px 7px;border-radius:999px;background:var(--warn-bg);color:var(--warn)}.ed-actions{display:inline-flex;gap:4px;margin-left:auto}.ed-actions .chip{padding:2px 9px;font-size:12px}.ed-field{position:relative}.ed-hl,.ed-field textarea{font-family:var(--serif);font-size:15.5px;line-height:1.55;letter-spacing:0;padding:9px 11px;border:1px solid transparent;border-radius:9px;white-space:pre-wrap;overflow-wrap:break-word;word-break:normal;-moz-tab-size:4;tab-size:4}.ed-hl{color:transparent;pointer-events:none;min-height:2.6em}.ed-hl mark{color:transparent;background:#dda77b61;border-radius:3px}.ed-hl .ed-note{color:transparent;background:#2e8f8a2e;border-radius:3px}.ed-field textarea{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;resize:none;overflow:hidden;background:transparent;color:var(--ink);border-color:var(--line);caret-color:var(--ink)}.ed-field textarea:focus{outline:2px solid rgba(46,143,138,.45);outline-offset:1px;border-color:transparent}.ed-h .ed-hl,.ed-h textarea{font-weight:700;font-size:16.5px}.ed-x .ed-hl,.ed-x textarea{font-family:var(--body);font-size:14px}.ed-x .ed-field textarea{background:#efedf68c}.ed-note{font-variant-numeric:tabular-nums}.lede .ed-note{padding:0 4px;border-radius:4px;background:#2e8f8a24}.edit-problem{color:var(--fail);font-size:13.5px}.edit-problem ul{margin:4px 0 0 18px}.edit-conflict{border-color:var(--warn);background:var(--warn-bg)}.edit-conflict details{margin:10px 0}.ed-mine{font-family:var(--serif);font-size:14.5px;margin-top:8px;-webkit-user-select:all;user-select:all}.saving-line{font-size:13.2px;color:var(--ink-mute);margin-bottom:8px}.setup-card{border-color:var(--teal)}.setup-card h2{margin-bottom:6px}.setup-steps{margin:10px 0 0 20px;display:grid;gap:8px;font-size:14px}.setup-steps code{font-size:12.5px}.draft-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--teal);margin-left:2px}@media(max-width:1100px){.edit-grid{grid-template-columns:minmax(0,1fr)}.edit-preview{position:static}.edit-text{max-height:none}.edit-preview .edit-host{width:min(100%,calc((100vh - 120px) * var(--ratio, .7725)))}.edit-view-3{display:none}}@media(max-width:700px){h1{font-size:27px}.modal{grid-template-columns:1fr}.status-side{align-items:flex-start}}.reader-override{margin:10px 0 0;padding:10px 14px;border-radius:8px;border:1px solid rgba(184,116,26,.42);background:#e9b24a24;font-size:13.4px;line-height:1.5;display:flex;flex-wrap:wrap;align-items:center;gap:8px}.reader-override strong{font-weight:650}.reader-shell:fullscreen{background:var(--ground-1, #EFEDF6);padding:16px 20px 20px;display:flex;flex-direction:column;overflow:auto}.reader-shell:fullscreen .reader-card{flex:1 1 auto;display:flex;flex-direction:column;justify-content:center;margin:0}.reader-shell:fullscreen .reader-host{height:min(88vh,1600px)}.reader-shell:fullscreen .reader-spread .reader-host{height:min(86vh,1500px)}
