:root{--bg:#f6f5f1;--surface:#ffffff;--text:#22221f;--muted:#6d6b64;--line:#e2dfd6;--accent:#2f6b4f;--code:#efede6;--wip:#a8650f}@media (prefers-color-scheme:dark){:root{--bg:#161614;--surface:#1f1f1c;--text:#e9e7e1;--muted:#9a978e;--line:#34332e;--accent:#7cc5a0;--code:#2a2a26;--wip:#e0a84e}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Pretendard,Noto Sans KR,Malgun Gothic,-apple-system,sans-serif;background:var(--bg);color:var(--text);line-height:1.7;font-size:16px;-webkit-text-size-adjust:100%}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.nav{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 24px;background:var(--bg);border-bottom:1px solid var(--line)}.nav .brand{font-weight:700;color:var(--text);white-space:nowrap}.nav nav{display:flex;align-items:center;gap:16px;font-size:.95em}.nav nav a{color:var(--muted);white-space:nowrap}.nav nav a:hover{color:var(--text);text-decoration:none}.nav button{background:none;border:0;color:var(--muted);font-size:1.1em;cursor:pointer}main{max-width:860px;margin:0 auto;padding:32px 24px 80px}.doc .updated{color:var(--muted);font-size:.85em;margin-bottom:8px}.doc h1{font-size:1.8em;line-height:1.3;margin:8px 0 16px}.doc h2{font-size:1.3em;margin:40px 0 12px;padding-top:8px}.doc h2,.doc h3{scroll-margin-top:64px}.doc h3{font-size:1.08em;margin:24px 0 8px}.doc ol,.doc p,.doc ul{margin:10px 0}.doc ol,.doc ul{padding-left:1.3em}.doc li{margin:4px 0}.doc hr{border:0;border-top:1px solid var(--line);margin:32px 0}.doc blockquote{border-left:3px solid var(--accent);padding:4px 14px;color:var(--muted);margin:14px 0}.doc code{padding:1px 6px;border-radius:4px;font-size:.88em}.doc code,.doc pre{background:var(--code)}.doc pre{padding:14px;border-radius:8px;overflow-x:auto}.doc pre code{padding:0}.tbl{overflow-x:auto;margin:14px 0;-webkit-overflow-scrolling:touch}.doc table{border-collapse:collapse;width:100%;font-size:.93em}.doc td,.doc th{border-bottom:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}.doc th{color:var(--muted);font-weight:600;white-space:nowrap}.links{list-style:none;padding:0!important}.links li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.links span{color:var(--muted);font-size:.9em;text-align:right}main:has(.home){max-width:1080px}.hero{padding:24px 0 8px}.eyebrow{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.85em;color:var(--accent);letter-spacing:.04em}.hero h1{font-size:2.4em;line-height:1.2;letter-spacing:-.02em;margin:6px 0 12px;text-wrap:balance}.lede{color:var(--muted);max-width:560px}.stats{display:flex;gap:32px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.stats dt{color:var(--muted);font-size:.82em}.stats dd{font-size:1.8em;font-weight:700;line-height:1.2;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stats dd.date{font-size:1.2em;padding-top:6px}.group{margin-top:44px}.group h2{font-size:.85em;font-weight:600;color:var(--muted);letter-spacing:.02em;margin-bottom:12px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:14px;gap:14px}.card{--tone:var(--accent);display:flex;flex-direction:column;gap:6px;padding:18px 18px 16px;background:var(--surface);border:1px solid var(--line);border-radius:14px;color:var(--text);transition:border-color .15s,transform .15s}.card:hover{text-decoration:none;border-color:var(--tone);transform:translateY(-2px)}.card.tone-wip{--tone:var(--wip)}.card.tone-idea,.card.tone-off{--tone:var(--muted)}.card.tone-off{opacity:.6}.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.mono{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:color-mix(in srgb,var(--tone) 16%,transparent);font-weight:700}.badge,.mono{color:var(--tone)}.badge{font-size:.75em;padding:2px 9px;border-radius:99px;border:1px solid color-mix(in srgb,var(--tone) 45%,transparent)}.card h3{font-size:1.1em;line-height:1.35}.card .summary{font-size:.93em}.card .status{font-size:.86em;color:var(--muted)}.card .status strong{color:var(--text);font-weight:600}.stack{display:flex;flex-wrap:wrap;gap:5px;list-style:none;margin-top:auto;padding-top:8px}.stack li{font-size:.74em;padding:1px 8px;border-radius:6px;background:var(--code);color:var(--muted)}.quick{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:10px;gap:10px}.quick a{display:flex;flex-direction:column;padding:14px 16px;border:1px solid var(--line);border-radius:12px;color:var(--text)}.quick a:hover{text-decoration:none;border-color:var(--accent)}.quick span{color:var(--muted);font-size:.85em}main:has(.editor),main:has(.shared){max-width:none;padding:0}.nav .brand .short{display:none}.sheet-list h1{font-size:1.8em;margin-bottom:6px}.notice{margin:16px 0;padding:10px 14px;border-radius:10px;background:var(--code);font-size:.9em}.notice.error{color:#c0392b}.new-sheet{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0}.new-sheet button,.toolbar button{font:inherit;font-size:.9em;padding:8px 14px;border-radius:9px;border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;white-space:nowrap}.new-sheet button:hover,.toolbar button:hover{border-color:var(--accent)}.new-sheet button:disabled{opacity:.5}.toolbar button.danger{color:#c0392b}.sheets{list-style:none;border-top:1px solid var(--line)}.sheets a{display:flex;justify-content:space-between;gap:12px;padding:14px 4px;border-bottom:1px solid var(--line);color:var(--text)}.sheets a:hover{text-decoration:none;background:var(--surface)}.sheets span{color:var(--muted);font-size:.88em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.editor{display:flex;flex-direction:column;height:calc(100dvh - 49px)}.toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;padding:10px 16px;border-bottom:1px solid var(--line)}.toolbar .back{color:var(--muted);font-size:.9em;white-space:nowrap}.toolbar .title{font:inherit;font-weight:700;font-size:1.05em;border:1px solid transparent;border-radius:8px;padding:4px 8px;background:transparent;color:var(--text);min-width:0;width:14em}.toolbar .title:focus,.toolbar .title:hover{border-color:var(--line);outline:none}.save-status{font-size:.8em;color:var(--muted);white-space:nowrap}.save-status.error{color:#c0392b}.toolbar .actions{display:flex;gap:6px;margin-left:auto;flex-wrap:wrap}.toolbar .actions button{padding:6px 11px}.formula-bar{display:flex;align-items:center;gap:8px;padding:6px 16px;border-bottom:1px solid var(--line);background:var(--surface)}.formula-bar .ref{font-family:ui-monospace,Consolas,monospace;font-size:.85em;color:var(--muted);min-width:3.5em}.formula-bar input{flex:1 1;font:inherit;font-family:ui-monospace,Consolas,Malgun Gothic,monospace;font-size:.92em;border:0;background:transparent;color:var(--text);outline:none;padding:4px 0}.grid-wrap{flex:1 1;overflow:auto;-webkit-overflow-scrolling:touch}.grid{border-collapse:separate;border-spacing:0;font-size:.92em;-webkit-user-select:none;-moz-user-select:none;user-select:none}.grid td,.grid th{border-right:1px solid var(--line);border-bottom:1px solid var(--line);height:30px;padding:0 8px;white-space:nowrap}.grid td{position:relative;min-width:110px;max-width:260px;overflow:hidden;text-overflow:ellipsis;background:var(--surface);cursor:cell}.grid thead th{top:0;z-index:2}.grid tbody th,.grid thead th{position:-webkit-sticky;position:sticky;background:var(--bg);color:var(--muted);font-weight:500;font-size:.82em}.grid tbody th{left:0;z-index:1;text-align:center;min-width:40px}.grid th.corner{left:0;z-index:3}.grid th.on{color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--bg))}.grid td.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.grid td.formula{font-weight:600;background:color-mix(in srgb,var(--accent) 7%,var(--surface))}.grid td.in-range{background:color-mix(in srgb,var(--accent) 14%,var(--surface))}.grid td.active{outline:2px solid var(--accent);outline-offset:-2px;z-index:1}.cell-input{position:absolute;inset:0;width:100%;border:0;padding:0 8px;font:inherit;background:transparent;color:transparent;caret-color:transparent;outline:none}.cell-input.editing{background:var(--surface);color:var(--text);caret-color:var(--text)}.statusbar{display:flex;justify-content:flex-end;gap:18px;padding:7px 16px;border-top:1px solid var(--line);font-size:.82em;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.statusbar b{color:var(--text)}.statusbar .hint{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shared{max-width:960px;margin:0 auto;padding:28px 16px 60px}.shared h1{font-size:1.5em}.shared .updated{color:var(--muted);font-size:.85em;margin:4px 0 18px}.shared .grid-wrap{border:1px solid var(--line);border-radius:10px}.grid.readonly{-webkit-user-select:text;-moz-user-select:text;user-select:text}.grid.readonly td{cursor:default;min-width:90px}.login-wrap{min-height:70vh;display:flex;align-items:center;justify-content:center}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:36px 28px;width:100%;max-width:360px;text-align:center}.login-card h1{font-size:1.4em;margin-bottom:4px}.login-sub{color:var(--muted);font-size:.92em;margin-bottom:20px}.login-card input[type=password]{width:100%;padding:12px 14px;font-size:1em;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--text)}.login-error{color:#c0392b;font-size:.88em;margin-top:10px}.login-card button{width:100%;margin-top:14px;padding:12px;font-size:1em;border:0;border-radius:10px;background:var(--accent);color:var(--surface);cursor:pointer}@media (max-width:600px){body{font-size:15px}.nav{padding:10px 16px}.nav nav{gap:12px;font-size:.9em}main{padding:20px 16px 60px}.doc{overflow-wrap:anywhere}.doc h1{font-size:1.45em}.doc h2{font-size:1.15em;margin-top:32px}.doc table{min-width:520px}.doc td,.doc th{overflow-wrap:normal;word-break:keep-all}.hero h1{font-size:1.75em}.stats{gap:20px}.stats dd{font-size:1.5em}.group{margin-top:32px}.cards{grid-template-columns:1fr;gap:10px}.card{padding:14px}.nav .brand .full{display:none}.nav .brand .short{display:inline}.toolbar{padding:8px 12px}.toolbar .title{width:auto;flex:1 1}.toolbar .actions{margin-left:0;width:100%;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}.formula-bar{padding:6px 12px}.grid td{min-width:92px}.statusbar .hint{display:none}}