@import url("https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@1,6..72,400;1,6..72,500&family=JetBrains+Mono:wght@400;500;600&display=swap");@font-face{font-family:Pretendard;src:url(/fonts/PretendardVariable.woff2) format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap}:root{--paper-0:#ffffff;--paper-50:#faf8f4;--paper-100:#f5f2ec;--paper-150:#efebe3;--paper-200:#e9e4e0;--paper-300:#ddd7d1;--paper-400:#c4bdb5;--ink-900:#16151c;--ink-800:#26242e;--ink-700:#3a3742;--ink-600:#57535e;--ink-500:#78737d;--ink-400:#9b959e;--blush-50:#fdeeee;--blush-100:#fbe0e0;--blush-200:#f6c8c8;--blush-300:#eea6a6;--blush-500:#d97b7b;--blush-700:#a44f4f;--green-100:#dcece2;--green-500:#2e7d5b;--green-700:#1f5a41;--violet-500:#6b5cff;--amber-500:#d98a2b;--sky-500:#3a7bd5;--charcoal-900:#100e0d;--charcoal-800:#141210;--charcoal-700:#191614;--charcoal-600:#221e1b;--charcoal-500:#2b2622;--charcoal-400:#3a342e;--charcoal-300:#4a433c;--charcoal-200:#9c9287;--bg-canvas:var(--paper-100);--bg-raised:var(--paper-50);--bg-inset:var(--paper-0);--bg-band:var(--paper-150);--surface-card:var(--paper-200);--surface-card-raised:var(--paper-50);--text-display:var(--ink-900);--text-body:var(--ink-800);--text-secondary:var(--ink-600);--text-muted:var(--ink-500);--text-placeholder:var(--ink-400);--text-on-accent:var(--ink-900);--text-code:var(--green-700);--border-hairline:var(--paper-300);--border-strong:var(--paper-400);--border-accent:var(--blush-200);--accent:var(--blush-50);--accent-fill:var(--blush-50);--accent-border:var(--blush-200);--accent-strong:var(--blush-500);--focus-ring:var(--blush-300);--link:var(--ink-900);--link-hover:var(--blush-700);--text-danger:var(--blush-700);--text-success:var(--green-700);--text-accent:var(--blush-700);--text-on-danger:var(--ink-900);--surface-success:var(--green-100);--surface-danger:var(--blush-500);--surface-avatar:var(--paper-300);--border-success:#bcdcc9;--border-danger:var(--blush-300);--border-tick:var(--blush-300);--accent-fill-hover:var(--blush-100);--accent-border-hover:var(--blush-300);--selection-bg:var(--blush-100);--scrim:rgba(22,21,28,0.28);--font-sans:"Pretendard",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-serif:"Newsreader","Iowan Old Style",Georgia,serif;--font-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,monospace;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-black:850;--text-xs:12px;--text-sm:14px;--text-base:16px;--text-md:18px;--text-lg:21px;--text-xl:26px;--text-2xl:33px;--text-3xl:44px;--text-4xl:60px;--text-5xl:82px;--leading-tight:1.02;--leading-snug:1.15;--leading-normal:1.5;--leading-relaxed:1.65;--tracking-display:-0.02em;--tracking-tight:-0.01em;--tracking-normal:0;--tracking-mono:0.06em;--tracking-wide:0.14em;--type-serif-display:italic var(--weight-regular) var(--text-5xl)/var(--leading-tight) var(--font-serif);--type-display:var(--weight-black) var(--text-5xl)/var(--leading-tight) var(--font-sans);--type-h1:var(--weight-black) var(--text-4xl)/1.05 var(--font-sans);--type-h2:var(--weight-bold) var(--text-2xl)/1.1 var(--font-sans);--type-h3:var(--weight-semibold) var(--text-xl)/1.2 var(--font-sans);--type-body:var(--weight-regular) var(--text-md)/var(--leading-relaxed) var(--font-sans);--type-body-sm:var(--weight-regular) var(--text-sm)/var(--leading-normal) var(--font-sans);--type-ui:var(--weight-medium) var(--text-base)/1.3 var(--font-sans);--type-label:var(--weight-medium) var(--text-xs)/1 var(--font-mono);--type-code:var(--weight-regular) var(--text-sm)/var(--leading-normal) var(--font-mono);--radius-xs:3px;--radius-sm:5px;--radius-md:8px;--radius-lg:12px;--radius-pill:999px;--border-thin:1px;--border-med:1.5px;--shadow-none:none;--shadow-xs:0 1px 2px rgba(22,21,28,0.04);--shadow-sm:0 1px 3px rgba(22,21,28,0.06),0 1px 2px rgba(22,21,28,0.04);--shadow-md:0 4px 14px rgba(22,21,28,0.07),0 1px 3px rgba(22,21,28,0.05);--shadow-lg:0 16px 40px rgba(22,21,28,0.10),0 2px 8px rgba(22,21,28,0.05);--ease-out:cubic-bezier(0.22,0.61,0.36,1);--dur-fast:120ms;--dur-base:200ms;--paper-grid:radial-gradient(rgba(22,21,28,0.035) 1px,transparent 0);--paper-grid-size:22px 22px;color-scheme:light}:root[data-theme=dark]{--bg-canvas:var(--charcoal-700);--bg-raised:var(--charcoal-600);--bg-inset:var(--charcoal-500);--bg-band:var(--charcoal-800);--surface-card:var(--charcoal-900);--surface-card-raised:var(--charcoal-600);--text-display:var(--paper-0);--text-body:var(--paper-100);--text-secondary:var(--paper-300);--text-muted:var(--paper-400);--text-placeholder:var(--charcoal-200);--text-on-accent:var(--paper-0);--text-code:var(--green-100);--border-hairline:var(--charcoal-400);--border-strong:var(--charcoal-300);--border-accent:var(--blush-500);--accent:var(--blush-700);--accent-fill:var(--blush-700);--accent-border:var(--blush-500);--accent-strong:var(--blush-500);--focus-ring:var(--blush-300);--link:var(--paper-100);--link-hover:var(--blush-300);--text-danger:var(--blush-300);--text-success:var(--green-100);--text-accent:var(--paper-0);--text-on-danger:var(--paper-0);--surface-success:var(--green-700);--surface-danger:var(--blush-700);--surface-avatar:var(--charcoal-500);--border-success:var(--green-500);--border-danger:var(--blush-300);--border-tick:var(--blush-300);--accent-fill-hover:var(--blush-500);--accent-border-hover:var(--blush-300);--selection-bg:var(--blush-700);--scrim:rgba(0,0,0,0.6);--shadow-xs:0 1px 2px rgba(0,0,0,0.30);--shadow-sm:0 1px 3px rgba(0,0,0,0.40),0 1px 2px rgba(0,0,0,0.30);--shadow-md:0 4px 14px rgba(0,0,0,0.45),0 1px 3px rgba(0,0,0,0.35);--shadow-lg:0 16px 40px rgba(0,0,0,0.55),0 2px 8px rgba(0,0,0,0.35);--paper-grid:radial-gradient(rgba(245,242,236,0.04) 1px,transparent 0);color-scheme:dark}*,:after,:before{box-sizing:border-box}body,html{height:100%}body{margin:0;background:var(--bg-canvas);background-image:var(--paper-grid);background-size:var(--paper-grid-size);color:var(--text-body);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--link);text-decoration:none}a:hover{color:var(--link-hover)}button{font-family:inherit}::selection{background:var(--selection-bg)}.eyebrow{font:var(--type-label);color:var(--text-muted);display:inline-block}.badge,.eyebrow{letter-spacing:var(--tracking-mono);text-transform:uppercase}.badge{display:inline-flex;align-items:center;gap:6px;font:var(--weight-medium) 11px/1 var(--font-mono);padding:5px 9px;border-radius:var(--radius-pill);border:1px solid var(--border-hairline);white-space:nowrap}.badge,.badge--neutral{background:var(--bg-canvas);color:var(--text-secondary)}.badge--neutral{border-color:var(--border-hairline)}.badge--accent{background:var(--accent-fill);color:var(--text-accent);border-color:var(--accent-border)}.badge--success{background:var(--surface-success);color:var(--text-success);border-color:var(--border-success)}.badge--ink{background:var(--text-display);color:var(--bg-canvas);border-color:var(--text-display)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-sans);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out);-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus-ring)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn--sm{padding:0 12px;height:36px;border-radius:var(--radius-sm)}.btn--md,.btn--sm{font-size:var(--text-sm)}.btn--md{padding:0 16px;height:42px}.btn--lg{font-size:var(--text-base);padding:0 20px;height:48px}.btn--full{width:100%}.btn--primary{background:var(--accent-fill);border-color:var(--accent-border);color:var(--text-on-accent);box-shadow:var(--shadow-xs)}.btn--primary:hover{background:var(--accent-fill-hover);border-color:var(--accent-border-hover)}.btn--solid{background:var(--text-display);border-color:var(--text-display);color:var(--bg-canvas)}.btn--solid:hover{background:var(--text-body)}.btn--secondary{background:var(--bg-inset);border-color:var(--border-hairline);color:var(--text-display);box-shadow:var(--shadow-xs)}.btn--secondary:hover{background:var(--bg-raised);border-color:var(--border-strong)}.btn--ghost{background:transparent;border-color:transparent;color:var(--text-secondary)}.btn--ghost:hover{background:var(--surface-card);color:var(--text-display)}.blueprint{position:relative;border:1px solid var(--border-hairline);border-radius:var(--radius-md)}.blueprint:before{content:"";inset:4px;border:1px solid var(--border-accent);border-radius:calc(var(--radius-md) - 3px)}.blueprint .tick,.blueprint:before{position:absolute;pointer-events:none}.blueprint .tick{width:7px;height:7px;border:1px solid var(--border-tick)}.blueprint .tick.tl{top:-1px;left:-1px;border-right:none;border-bottom:none}.blueprint .tick.tr{top:-1px;right:-1px;border-left:none;border-bottom:none}.blueprint .tick.bl{bottom:-1px;left:-1px;border-right:none;border-top:none}.blueprint .tick.br{bottom:-1px;right:-1px;border-left:none;border-top:none}.card{border-radius:var(--radius-lg);border:1px solid var(--border-hairline);background:var(--bg-raised)}.card--flat{background:var(--surface-card);box-shadow:none}.card--raised{background:var(--surface-card-raised);box-shadow:var(--shadow-md)}.card--inset{background:var(--bg-inset);box-shadow:var(--shadow-xs) inset}.card--interactive{cursor:pointer;transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out)}.card--interactive:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--border-strong)}.field{display:flex;flex-direction:column;gap:7px}.field__label{font:var(--weight-semibold) var(--text-sm)/1 var(--font-sans);color:var(--text-body)}.field__control{font:var(--type-ui);color:var(--text-display);background:var(--bg-inset);border:1.5px solid var(--border-hairline);border-radius:var(--radius-md);padding:11px 14px;width:100%;transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.field__control::placeholder{color:var(--text-placeholder)}.field__control:focus{outline:none;border-color:var(--border-accent);box-shadow:0 0 0 3px var(--focus-ring)}.field__control:disabled{background:var(--bg-band);color:var(--text-muted);cursor:not-allowed}.field__control--multiline{line-height:var(--leading-normal);min-height:96px;resize:vertical;overflow-wrap:anywhere}.field__hint{font:var(--type-body-sm);color:var(--text-muted)}.field--invalid .field__control{border-color:var(--border-danger)}.navitem{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:var(--radius-sm);font:var(--weight-medium) var(--text-sm)/1 var(--font-sans);color:var(--text-secondary);cursor:pointer;border:1px solid transparent;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);text-align:left;width:100%;background:none}.navitem:hover{background:var(--bg-raised);color:var(--text-display)}.navitem--active{border-color:var(--border-hairline);font-weight:var(--weight-semibold);color:var(--text-display)}.navitem--active,.navitem--active:hover{background:var(--bg-inset)}.navitem--sm{padding:7px 10px;font-weight:var(--weight-regular)}.switch{margin-left:auto;flex:none;width:30px;height:17px;padding:2px;border-radius:var(--radius-pill);border:1px solid var(--border-hairline);background:var(--bg-canvas);display:flex;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.switch--on{background:var(--accent-fill);border-color:var(--accent-border)}.switch__thumb{width:11px;height:11px;border-radius:var(--radius-pill);background:var(--text-secondary);transition:transform var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.switch--on .switch__thumb{transform:translateX(13px);background:var(--accent-strong)}.navitem__text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar--rail .navitem,.sidebar--rail .navitem--sm{padding:8px;justify-content:center}.sidebar--rail .btn{justify-content:center}.sidebar--rail .btn,.sidebar--rail .navitem,.sidebar--rail .sidebar__footer{position:relative}.sidebar--rail .navitem__text{position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);z-index:20;padding:6px 10px;border-radius:var(--radius-sm);background:var(--text-display);color:var(--bg-canvas);font:var(--weight-medium) var(--text-sm)/1 var(--font-sans);letter-spacing:var(--tracking-tight);white-space:nowrap;max-width:220px;box-shadow:var(--shadow-xs);opacity:0;pointer-events:none;transition:opacity var(--dur-fast) var(--ease-out)}.sidebar--rail .btn:focus-visible>.navitem__text,.sidebar--rail .btn:hover>.navitem__text,.sidebar--rail .navitem:focus-visible>.navitem__text,.sidebar--rail .navitem:hover>.navitem__text,.sidebar--rail .sidebar__footer:focus-visible>.navitem__text,.sidebar--rail .sidebar__footer:hover>.navitem__text{opacity:1}.brand-mark{width:28px;height:28px;border-radius:8px;background:var(--accent-fill);border:1.5px solid var(--accent-border);display:grid;place-items:center;color:var(--text-on-accent);flex:none}.caret{display:inline-block;width:2px;background:var(--accent-strong);animation:blink 1.1s steps(1) infinite}@keyframes blink{50%{opacity:0}}.cover-skeleton,.skeleton{overflow:hidden;background:var(--surface-card)}.skeleton{position:relative;border-radius:var(--radius-sm)}.cover-skeleton{position:absolute;inset:0;border-radius:var(--radius-lg)}.cover-skeleton:after,.skeleton:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,var(--bg-raised),transparent);animation:skeleton-shimmer calc(var(--dur-base) * 6) var(--ease-out) infinite}@keyframes skeleton-shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important}}