@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-opsz-normal-Czevyj-6.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-opsz-normal-CJcjJNj7.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-opsz-normal-DihXLNYH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-opsz-italic-DxWqP7Ku.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-opsz-italic-CGbN9UgK.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-opsz-italic-lSdLDfvT.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper: #f3eee3;--card: #fbf8f1;--desk: #e4dccb;--ink: #1f1b16;--ink-soft: #5e554a;--rule: #cfc5b4;--rule-strong: #a99d88;--stamp: #b3261e;--blue-ink: #2b4c7e;--ok: #3e5b3a;--serif: "Fraunces Variable", "Iowan Old Style", "Songti SC", "Noto Serif CJK SC", Georgia, serif;--mono: "IBM Plex Mono", "SFMono-Regular", Menlo, "PingFang SC", monospace;--radius: 3px;--focus: 0 0 0 2px var(--card), 0 0 0 4px var(--stamp);--header-h: 68px;--tabbar-h: 64px;--panel-w: minmax(360px, 460px);color-scheme:light}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:16px;line-height:1.5;font-optical-sizing:auto;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:repeating-linear-gradient(0deg,rgba(58,46,31,.025) 0 1px,transparent 1px 4px);z-index:0}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--blue-ink);text-underline-offset:2px}code{font-family:var(--mono);font-size:.85em;background:#1f1b160f;padding:0 .25em;border-radius:2px}:focus{outline:none}:focus-visible{box-shadow:var(--focus);outline:none}.visually-hidden,.visually-hidden-file{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.muted{color:var(--ink-soft)}.mono-label,.field-label,.block-title,.seg-btn,.btn,.tab,.hint code{font-family:var(--mono)}.app{position:relative;z-index:1;min-height:100vh}.masthead{height:var(--header-h);border-bottom:3px solid var(--ink);box-shadow:0 5px 0 -4px var(--ink);background:var(--paper);position:relative;z-index:3}.masthead-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 24px}.brand{margin:0;display:flex;align-items:baseline;gap:14px;min-width:0}.brand-name{font-family:var(--serif);font-style:italic;font-weight:640;font-size:30px;line-height:1;letter-spacing:0;white-space:nowrap;font-variation-settings:"opsz" 72}.brand-tag,.masthead-note{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.masthead-note{margin:0}.privacy-link{flex-shrink:0;font-size:12px;min-height:44px}.workspace{display:grid;grid-template-columns:var(--panel-w) 1fr;height:calc(100vh - var(--header-h));height:calc(100dvh - var(--header-h))}.panel{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--ink);background:var(--paper)}.panel-body{flex:1;overflow-y:auto;padding:8px 24px 40px;scrollbar-gutter:stable}.tabs{padding:14px 24px 0;border-bottom:1px solid var(--ink);background:linear-gradient(var(--paper),var(--paper))}.tabs [role=tablist]{display:flex;gap:6px}.tab{flex:1;display:flex;align-items:baseline;justify-content:center;gap:8px;min-height:44px;padding:10px 10px 9px;background:var(--desk);border:1px solid var(--ink);border-bottom:none;border-radius:6px 6px 0 0;cursor:pointer;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);position:relative;top:1px;transition:background-color .12s ease}.tab:hover{background:#ede6d7;color:var(--ink)}.tab[aria-selected=true]{background:var(--card);color:var(--ink);font-weight:600;z-index:1}.tab-numeral{font-family:var(--serif);font-style:italic;font-weight:600;font-size:16px;letter-spacing:0;text-transform:none;color:var(--stamp)}.tab-count{font-size:11px;padding:1px 6px;border:1px solid currentColor;border-radius:999px;letter-spacing:.04em}.notice-slot{padding:0 24px}.notice{display:flex;align-items:flex-start;gap:10px;margin:12px 0 0;padding:10px 12px 10px 14px;border:1px solid var(--ink);border-left-width:4px;background:var(--card);font-size:14px;line-height:1.45;animation:settle .16s ease-out}.notice span{flex:1}.notice-ok{border-left-color:var(--ok)}.notice-error{border-left-color:var(--stamp)}.notice-info{border-left-color:var(--blue-ink)}.notice-close{border:none;background:none;cursor:pointer;font-size:20px;line-height:1;padding:0 4px;min-width:32px;min-height:32px;border-radius:var(--radius)}@keyframes settle{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}.panel-head{padding:18px 0 6px}.panel-title{font-family:var(--serif);font-weight:600;font-size:34px;line-height:1.05;margin:0 0 8px;font-variation-settings:"opsz" 96}.panel-sub{margin:0;color:var(--ink-soft);font-style:italic;font-size:16px}.block{margin:22px 0 0;padding:16px 0 0;border:none;border-top:1px solid var(--ink);min-width:0}fieldset.block{padding-inline:0;padding-bottom:0}.block-title{display:flex;align-items:center;gap:8px;float:left;width:100%;margin:0 0 12px;padding:0;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.block-title+*{clear:both}.block-count{font-weight:500;padding:0 7px;border:1px solid var(--ink);border-radius:999px;letter-spacing:.04em}.sub-title{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;margin:18px 0 4px}.hint{margin:8px 0 0;font-size:13.5px;line-height:1.45;color:var(--ink-soft)}.field{display:flex;flex-direction:column;gap:6px;margin-top:12px;min-width:0}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field-label{font-size:11.5px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}.req{color:var(--stamp);font-weight:500;margin-left:4px}.field-error{color:var(--stamp);font-size:13.5px;margin:6px 0 0}.input{width:100%;min-height:44px;padding:9px 12px;background:var(--card);border:1px solid var(--ink);border-radius:var(--radius);font-family:var(--serif);font-size:16px}select.input{appearance:none;padding-right:34px;background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 18px) 55%,calc(100% - 13px) 55%;background-size:5px 5px;background-repeat:no-repeat}.input::placeholder{color:#8d8374;font-style:italic}.input[aria-invalid=true]{border-color:var(--stamp);border-width:2px}.textarea{min-height:176px;resize:vertical;line-height:1.55;background-image:repeating-linear-gradient(transparent 0 24.3px,#2b4c7e29 24.3px 25px);background-attachment:local;background-position:0 9px}.input-with-btn{display:flex;gap:8px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 16px;border:1px solid var(--ink);border-radius:var(--radius);background:var(--card);color:var(--ink);font-size:13px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;text-decoration:none;transition:background-color .12s ease,color .12s ease,transform 80ms ease;white-space:nowrap}.btn:hover:not(:disabled){background:#efe8da}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--ink);color:var(--paper)}.btn-primary:hover:not(:disabled){background:var(--stamp);border-color:var(--stamp)}.btn-small{min-height:40px;padding:8px 12px;font-size:12px}.btn-wide{width:100%}.btn-quiet{background:transparent;border-style:dashed}.btn-danger{background:var(--stamp);border-color:var(--stamp);color:#fff}.btn-danger:hover:not(:disabled){background:#8e1d17!important}.link-btn{background:none;border:none;padding:6px 2px;min-height:36px;color:var(--blue-ink);text-decoration:underline;text-underline-offset:3px;cursor:pointer;font-family:var(--serif);font-size:15px;border-radius:var(--radius)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;padding:0 8px;border:1px solid transparent;background:transparent;border-radius:var(--radius);cursor:pointer;font-size:18px;line-height:1;color:var(--ink)}.icon-btn:hover:not(:disabled){border-color:var(--ink);background:var(--card)}.icon-btn:disabled{opacity:.25;cursor:default}.icon-btn-text{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;border-color:var(--rule-strong)}.icon-btn-danger:hover:not(:disabled){color:var(--stamp);border-color:var(--stamp)}.row{display:flex;align-items:center;gap:10px;margin-top:12px}.row-wrap{flex-wrap:wrap}.stack>*+*{margin-top:10px}.seg{display:flex;border:1px solid var(--ink);border-radius:var(--radius);overflow:hidden;background:var(--card)}.seg-btn{flex:1;min-height:42px;padding:8px 10px;border:none;border-left:1px solid var(--ink);background:transparent;font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;color:var(--ink-soft)}.seg-btn:first-child{border-left:none}.seg-btn:hover{color:var(--ink);background:#f2ecdf}.seg-btn[aria-selected=true],.seg-btn[aria-checked=true]{background:var(--ink);color:var(--paper)}.seg-btn:focus-visible{box-shadow:inset 0 0 0 2px var(--card),inset 0 0 0 4px var(--stamp)}.seg-wide{flex-wrap:wrap}.add{margin-top:18px}.add-body{margin-top:14px}.sample-strip{display:none}.sample-strip-line{margin:0;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);line-height:1.45}.sample-strip-note{margin:8px 0 0;font-size:14px;font-style:italic;color:var(--ink-soft)}.sample-canvas{display:block;width:100%;height:auto;background:var(--card);box-shadow:0 1px #1f1b1638,0 12px 26px -14px #281c0c8c}.sample-canvas.is-ready{animation:sample-in .16s ease both}@keyframes sample-in{0%{opacity:0}to{opacity:1}}.sample-desk{flex:1;display:flex;flex-direction:column;align-items:flex-start;width:100%;max-width:940px;margin:0 auto;padding:28px 28px 48px}.sample-kicker{margin:0 0 10px;font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}.sample-title{margin:0 0 6px;font-family:var(--serif);font-size:28px;font-weight:600;line-height:1.15}.sample-text{max-width:60ch;margin:0 0 22px;color:var(--ink-soft);font-style:italic}.sample-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;width:100%}.sample-card,.sample-chip{position:relative;display:flex;flex-direction:column;gap:10px;width:100%;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:var(--radius)}.sample-card .sample-canvas,.sample-chip .sample-canvas{transition:transform .14s ease,box-shadow .14s ease}.sample-card:hover .sample-canvas,.sample-chip:hover .sample-canvas{transform:translateY(-3px);box-shadow:0 1px #1f1b1638,0 20px 34px -16px #281c0c99}.sample-card:active .sample-canvas,.sample-chip:active .sample-canvas{transform:translateY(1px)}.sample-card:focus-visible,.sample-chip:focus-visible{outline:none;box-shadow:var(--focus)}.sample-card-label{display:flex;flex-direction:column;gap:2px;font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase}.sample-card-theme{color:var(--ink-soft)}.sample-card-tag{position:absolute;top:-9px;left:10px;padding:2px 6px;background:var(--card);border:1px solid var(--stamp);color:var(--stamp);font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;transform:rotate(-3deg)}.sample-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}.sample-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin:0 0 18px;padding:12px 14px;border:1px dashed var(--rule-strong);border-radius:var(--radius);background:var(--card)}.sample-banner p{margin:0;flex:1 1 220px;font-style:italic;color:var(--ink-soft)}.parse-report{margin:8px 0 0;font-family:var(--mono);font-size:12.5px;letter-spacing:.02em}.dropzone{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:22px 18px;border:1.5px dashed var(--ink);border-radius:var(--radius);background:var(--card);cursor:pointer;position:relative}.dropzone:hover,.dropzone.is-dragging{background:#fffdf8;border-color:var(--stamp)}.dropzone:focus-within{box-shadow:var(--focus)}.dropzone-title{font-family:var(--mono);font-weight:600;font-size:13px;letter-spacing:.1em;text-transform:uppercase}.dropzone-text{font-size:14.5px;color:var(--ink-soft);font-style:italic}.help{font-size:14.5px}.help summary,.add-more summary,.others summary{cursor:pointer;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;min-height:40px;display:flex;align-items:center;gap:8px;border-radius:var(--radius)}.help p{margin:6px 0}.report{border:1px solid var(--ink);background:var(--card);padding:14px 16px;margin-top:12px}.report-error{border-color:var(--stamp);border-left-width:4px}.report-title{margin:0 0 8px;font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.report p{margin:4px 0}.report-cols{font-family:var(--mono);font-size:12px;color:var(--ink-soft)}.report-grid{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:0;font-size:14.5px}.report-grid dt{font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);padding-top:3px}.report-grid dd{margin:0}.search-row{display:flex;gap:8px}.results{list-style:none;padding:0;margin:8px 0 0;border-top:1px solid var(--rule)}.result{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--rule)}.result-text{flex:1;min-width:0;display:flex;flex-direction:column}.result-title{font-weight:560;overflow-wrap:anywhere}.result-meta{font-size:14px;color:var(--ink-soft);font-style:italic}.check{display:flex;align-items:flex-start;gap:10px;min-height:40px;padding:8px 0;cursor:pointer;font-size:15.5px;line-height:1.4}.check input{appearance:none;flex:none;width:20px;height:20px;margin:1px 0 0;border:1.5px solid var(--ink);border-radius:2px;background:var(--card);display:grid;place-content:center;cursor:pointer}.check input:after{content:"";width:11px;height:6px;border-left:2.5px solid var(--paper);border-bottom:2.5px solid var(--paper);transform:rotate(-45deg) translate(1px,-1px);opacity:0}.check input:checked{background:var(--ink)}.check input:checked:after{opacity:1}.check input:disabled{opacity:.5}.check input:focus-visible{box-shadow:var(--focus)}.lookup-status{margin:0 0 10px;font-size:15px}.lookup .btn+.link-btn{margin-left:10px}.progress{height:10px;border:1px solid var(--ink);background:var(--card);margin-bottom:8px;overflow:hidden}.progress span{display:block;height:100%;background:repeating-linear-gradient(-45deg,var(--ink) 0 6px,#3a332b 6px 12px);transition:width .3s ease}.book-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--ink);counter-reset:none}.book{display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--rule);min-width:0}.book-list-muted .book{grid-template-columns:auto 1fr auto}.book-n{font-family:var(--mono);font-size:12px;font-weight:500;color:var(--stamp);letter-spacing:.04em;width:2ch;text-align:right}.book-text{min-width:0;display:flex;flex-direction:column}.book-title{font-weight:560;font-size:16px;line-height:1.25;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.book-meta{font-size:13.5px;color:var(--ink-soft);font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book-flag{font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--stamp);margin-top:2px}.book-actions{display:flex;align-items:center;gap:2px}.thumb{display:block;flex:none;width:34px;height:51px;object-fit:cover;border:1px solid rgba(31,27,22,.25);box-shadow:1px 2px #1f1b161f}.thumb-md{width:72px;height:108px}.thumb-typo{display:flex;align-items:center;justify-content:center;padding:3px;overflow:hidden;font-family:var(--serif);font-weight:600;font-size:7px;line-height:1.1;text-align:center;overflow-wrap:anywhere}.thumb-md.thumb-typo{font-size:12px;padding:8px}.empty-line{font-style:italic;color:var(--ink-soft);margin:0;padding:12px 0;border-top:1px solid var(--ink)}.check-list{list-style:none;margin:6px 0 0;padding:0}.others,.add-more{margin-top:18px;border-top:1px dashed var(--rule-strong);padding-top:8px}.add-more[open]{padding-bottom:8px}.next-row{margin-top:26px;padding-top:18px;border-top:3px double var(--ink);display:flex;justify-content:flex-end}.options{display:grid;gap:10px}.options-2{grid-template-columns:1fr 1fr}.options-3{grid-template-columns:repeat(3,1fr)}.option{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-height:44px;padding:12px;border:1px solid var(--ink);border-radius:var(--radius);background:var(--card);text-align:left;cursor:pointer;transition:transform 80ms ease}.option:hover{background:#fffdf8}.option:active{transform:translateY(1px)}.option[aria-checked=true]{border-color:var(--stamp);box-shadow:inset 0 0 0 1px var(--stamp),0 0 0 3px var(--card),0 0 0 4px var(--stamp)}.option[aria-checked=true]:focus-visible{box-shadow:inset 0 0 0 1px var(--stamp),0 0 0 3px var(--card),0 0 0 5px var(--stamp)}.option-stamp{position:absolute;top:8px;right:8px;width:22px;height:22px;border:1.5px solid var(--stamp);border-radius:50%;color:var(--stamp);font-size:12px;display:grid;place-items:center;transform:rotate(-12deg);font-family:var(--mono);font-weight:600}.option-glyph svg{width:36px;height:36px;fill:var(--ink);stroke:var(--ink);margin-bottom:4px}.option-glyph .glyph-lines{fill:none}.option-glyph .glyph-red{stroke:var(--stamp)}.option-name{font-weight:600;font-size:16px;line-height:1.2}.option-note{font-size:13px;line-height:1.35;color:var(--ink-soft);font-style:italic}.ratio{width:26px;border:1.5px solid var(--ink);background:repeating-linear-gradient(0deg,transparent 0 5px,rgba(31,27,22,.12) 5px 6px);margin-bottom:6px}.swatch{display:flex;gap:3px;padding:5px;border:1px solid;border-radius:2px;margin-bottom:6px}.swatch span{width:14px;height:22px;border-radius:1px}.export-main{display:flex;flex-direction:column;gap:10px}.export-status{margin:0;min-height:1.5em;font-family:var(--mono);font-size:12.5px}.page-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}.page-row{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--rule)}.page-no{font-family:var(--mono);font-size:13px;font-weight:600;width:5ch}.page-desc{flex:1;font-style:italic;color:var(--ink-soft);font-size:14.5px}.notes ul{margin:0;padding-left:18px;font-size:14.5px;line-height:1.5}.notes li+li{margin-top:6px}.danger-text{margin:0;flex-basis:100%;font-size:15px}.desk{min-height:0;overflow-y:auto;background:radial-gradient(ellipse at 50% 0%,rgba(255,255,255,.35),transparent 60%),var(--desk);display:flex;flex-direction:column}.desk-bar{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 28px;background:#e4dccbeb;backdrop-filter:blur(4px);border-bottom:1px solid rgba(31,27,22,.2)}.desk-title{margin:0;display:flex;align-items:baseline;gap:12px;font-size:15px;font-style:italic}.mono-label{font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-style:normal;color:var(--stamp);border:1.5px solid var(--stamp);padding:1px 6px;transform:rotate(-3deg);display:inline-block}.zoom{display:flex;border:1px solid var(--ink);border-radius:var(--radius);overflow:hidden}.zoom button{min-height:36px;padding:4px 12px;border:none;background:var(--card);font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.zoom button+button{border-left:1px solid var(--ink)}.zoom button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.zoom button:focus-visible{box-shadow:inset 0 0 0 2px var(--card),inset 0 0 0 4px var(--stamp)}.sheets{display:flex;flex-direction:column;align-items:center;gap:36px;padding:32px 28px 64px}.sheet{margin:0;display:flex;flex-direction:column;align-items:center;gap:10px;width:100%}.sheet canvas{display:block;height:auto;max-width:100%;box-shadow:0 1px #1f1b1640,0 18px 40px -18px #281c0c8c,0 2px 6px #281c0c1f;opacity:0;transition:opacity .12s ease}.sheet canvas.is-ready{opacity:1}.desk[data-zoom=fit] .sheet[data-size=story] canvas{width:min(100%,420px)}.desk[data-zoom=fit] .sheet[data-size=portrait] canvas{width:min(100%,520px)}.desk[data-zoom=fit] .sheet[data-size=square] canvas{width:min(100%,560px)}.desk[data-zoom=full] .sheet canvas{width:min(100%,760px)}.sheet figcaption{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);display:flex;gap:6px}.desk-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:48px 28px}.empty-card{width:min(320px,80%);background:var(--card);border:1px solid var(--rule-strong);box-shadow:0 18px 40px -20px #281c0c80;padding:18px 20px 12px;transform:rotate(-2deg);margin-bottom:28px;position:relative}.empty-card:before{content:"";position:absolute;top:44px;bottom:0;left:72px;border-left:1.5px solid rgba(179,38,30,.6)}.empty-card-head{display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;border-bottom:2px solid var(--ink);padding-bottom:8px}.empty-card-hole{width:14px;height:14px;border-radius:50%;background:var(--desk);border:1px solid var(--rule-strong)}.empty-card-row{display:grid;grid-template-columns:52px 1fr;gap:20px;height:30px;border-bottom:1px solid var(--rule);align-items:center}.empty-card-row span{height:6px}.desk-empty-title{font-family:var(--serif);font-size:28px;font-weight:600;margin:0 0 8px}.desk-empty-text{max-width:42ch;margin:0;color:var(--ink-soft);font-style:italic}.desk-empty-btn{margin-top:18px;display:none}.dialog{padding:0;border:1px solid var(--ink);border-radius:4px;background:var(--card);color:var(--ink);width:min(620px,calc(100vw - 24px));max-height:min(88vh,860px);box-shadow:0 30px 80px -30px #140e0699}.dialog::backdrop{background:#1f1b1673}.dialog-inner{display:flex;flex-direction:column;max-height:min(88vh,860px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px 12px;border-bottom:3px double var(--ink)}.dialog-head h2{margin:0;font-family:var(--mono);font-size:13px;letter-spacing:.14em;text-transform:uppercase}.dialog-body{overflow-y:auto;padding:4px 18px 0;display:flex;flex-direction:column}.dialog-foot{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:10px;padding:12px 0 16px;margin-top:16px;background:var(--card);border-top:1px solid var(--rule)}.editor-cover{border:none;border-top:1px solid var(--ink);margin:20px 0 0;padding:14px 0 0;min-width:0}.editor-cover legend{float:left;width:100%;margin-bottom:10px}.editor-cover legend+*{clear:both}.cover-current{display:flex;align-items:center;gap:14px}.file-btn{position:relative}.file-btn:focus-within{box-shadow:var(--focus)}.candidates{list-style:none;padding:0;margin:12px 0 0;display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.candidate{width:100%;display:flex;flex-direction:column;align-items:center;gap:4px;padding:4px;border:1px solid var(--rule-strong);border-radius:var(--radius);background:var(--paper);cursor:pointer}.candidate img,.candidate-wait{width:100%;aspect-ratio:2 / 3;object-fit:cover;display:block}.candidate-wait{display:grid;place-items:center;font-family:var(--mono);font-size:10px;color:var(--ink-soft);background:repeating-linear-gradient(-45deg,transparent 0 6px,rgba(31,27,22,.06) 6px 12px)}.candidate[aria-pressed=true]{border-color:var(--stamp);box-shadow:0 0 0 2px var(--stamp)}.candidate-meta{font-family:var(--mono);font-size:11px}@media(max-width:1023px){:root{--header-h: 56px}.masthead-inner{padding:0 16px}.brand-name{font-size:24px}.masthead-note{display:none}.workspace{display:flex;flex-direction:column;height:auto;padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom))}.panel{border-right:none;order:2}.panel-body{overflow:visible;padding:4px 16px 32px}.notice-slot{padding:0 16px}.tabs{position:fixed;left:0;right:0;bottom:0;z-index:10;padding:0 8px env(safe-area-inset-bottom);border-top:3px double var(--ink);border-bottom:none;background:var(--paper)}.tabs [role=tablist]{gap:0}.tab{height:var(--tabbar-h);border:none;border-radius:0;background:transparent;top:0;flex-direction:column;align-items:center;gap:0;font-size:11px}.tab[aria-selected=true]{background:transparent;box-shadow:inset 0 3px 0 var(--stamp)}.tab-count{position:absolute;top:6px;right:calc(50% - 38px);font-size:10px;padding:0 5px}.desk{order:1;overflow:visible;display:none}.app[data-tab=style] .desk,.app[data-tab=export] .desk{display:flex}.desk-bar{position:static;padding:10px 16px}.zoom{display:none}.sheets{flex-direction:row;align-items:flex-start;overflow-x:auto;scroll-snap-type:x mandatory;gap:16px;padding:16px 16px 20px;-webkit-overflow-scrolling:touch}.sheet{flex:none;width:auto;scroll-snap-align:center}.desk[data-zoom] .sheet canvas{width:auto;max-width:none}.desk .sheet[data-size=story] canvas{height:min(40vh,380px)}.desk .sheet[data-size=portrait] canvas{height:min(34vh,330px)}.desk .sheet[data-size=square] canvas{height:min(30vh,300px)}.sheet:first-child{margin-left:auto}.sheet:last-child{margin-right:auto}.app[data-tab=export] .desk{order:3;border-top:1px solid var(--ink)}.desk-empty-btn{display:inline-flex}.panel-title{font-size:30px}.add-body .textarea{min-height:0;height:140px}.sample-strip{display:block;margin:14px 0 18px;padding:0 0 14px;border-bottom:1px dashed var(--rule-strong)}.sample-strip-row{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:8px 0 0;padding:0}.sample-chip{gap:6px}.sample-chip-label{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;line-height:1.25}.sample-desk{padding:16px 16px 24px}.sample-title{font-size:22px}.sample-text{margin-bottom:16px;font-size:15px}.sample-grid{gap:10px}.sample-card-label{font-size:10.5px}.sample-card-tag{display:none}.sample-actions{margin-top:18px}}@media(max-width:480px){.brand-tag{display:none}.options-2{grid-template-columns:1fr}.options-3{grid-template-columns:repeat(3,minmax(0,1fr))}.options-3 .option-note{font-size:11.5px}.field-pair{grid-template-columns:1fr;gap:0}.book{grid-template-columns:auto auto 1fr;grid-template-areas:"n thumb text" "actions actions actions";row-gap:4px}.book-n{grid-area:n}.book .thumb{grid-area:thumb}.book-text{grid-area:text}.book-actions{grid-area:actions;justify-content:flex-end}.book-list-muted .book{grid-template-columns:auto 1fr;grid-template-areas:"thumb text" "actions actions"}.candidates{grid-template-columns:repeat(3,1fr)}.search-row{flex-wrap:wrap}.search-row .input{flex-basis:100%}}.reading-guide{border-top:1px solid var(--ink);background:var(--card);padding:40px 24px calc(40px + var(--tabbar-h));scroll-margin-top:24px}.reading-guide-inner{max-width:1080px;margin:0 auto}.reading-guide h2{font-size:clamp(24px,3vw,32px);line-height:1.2;margin:0 0 16px}.reading-guide h3{font-size:21px;line-height:1.3;margin:24px 0 12px}.reading-guide p{max-width:68ch}.guide-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px}@media(max-width:767px){.guide-columns{grid-template-columns:1fr;gap:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
