*,*:before,*:after{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}:root{--bg: #2b2b2b;--bg-card: rgba(255,255,255,.035);--bg-card-hover: rgba(255,255,255,.06);--bg-input: rgba(255,255,255,.04);--bg-modal: rgba(31,31,31,.96);--border: rgba(255,255,255,.08);--border-hover: rgba(255,255,255,.14);--border-focus: rgba(255,255,255,.22);--text: #eae6e0;--text-secondary: #a39e98;--text-muted: #78736d;--text-faint: #56524e;--accent: #c4a882;--accent-dim: rgba(196,168,130,.1);--shadow-sm: 0 1px 2px rgba(0,0,0,.2);--shadow-card: 0 2px 8px rgba(0,0,0,.15);--shadow-card-hover: 0 4px 16px rgba(0,0,0,.25);--ease: cubic-bezier(.16, 1, .3, 1);--dur: .25s;--theme-dur: .4s;--theme-ease: cubic-bezier(.22, 1, .36, 1);--viewer-bar-bg: rgba(20,20,20,.78);--viewer-bg-top: #1b1c1f;--viewer-bg: #101113;--grain-opacity: .48;--theme-toggle-glow: rgba(234,230,224,.08);--palette-overlay-bg: rgba(5,5,5,.72);--palette-modal-bg: rgba(31,31,31,.965);--palette-modal-border: rgba(255,255,255,.085);--palette-modal-shadow: 0 24px 72px rgba(0,0,0,.52), inset 0 1px 0 rgba(255,255,255,.025);--palette-input-bg: rgba(255,255,255,.018);--palette-divider: rgba(255,255,255,.07);--palette-item-bg-hover: rgba(255,255,255,.05);--palette-item-bg-active: rgba(255,255,255,.07);--r: 8px;--r-sm: 5px;color-scheme:dark}:root.light{--bg: #f5f4ef;--bg-card: #ffffff;--bg-card-hover: #fcfcfc;--bg-input: #ffffff;--bg-modal: #ffffff;--border: rgba(0,0,0,.08);--border-hover: rgba(0,0,0,.14);--border-focus: rgba(0,0,0,.22);--text: #2d2a26;--text-secondary: #5e5a54;--text-muted: #8c8882;--text-faint: #b3b0ab;--accent: #a68b63;--accent-dim: rgba(166,139,99,.08);--shadow-sm: 0 1px 2px rgba(0,0,0,.05);--shadow-card: 0 4px 12px rgba(0,0,0,.05);--shadow-card-hover: 0 8px 24px rgba(0,0,0,.08);--viewer-bar-bg: #e8e2d6;--viewer-bg-top: #f5f0e8;--viewer-bg: #f5f0e8;--grain-opacity: .18;--theme-toggle-glow: rgba(166,139,99,.14);--palette-overlay-bg: rgba(26,22,18,.16);--palette-modal-bg: rgba(255,255,255,.94);--palette-modal-border: rgba(0,0,0,.08);--palette-modal-shadow: 0 18px 48px rgba(0,0,0,.12), inset 0 1px 0 rgba(255,255,255,.6);--palette-input-bg: rgba(0,0,0,.015);--palette-divider: rgba(0,0,0,.06);--palette-item-bg-hover: rgba(0,0,0,.03);--palette-item-bg-active: rgba(0,0,0,.045);color-scheme:light}html{font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;scroll-behavior:smooth;background:var(--bg)}body{background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden;transition:background-color var(--theme-dur) var(--theme-ease),color var(--theme-dur) var(--theme-ease)}html.palette-open,body.palette-open{overflow:hidden;overscroll-behavior:none}body.palette-open{position:fixed;inset:0;width:100%}body:after{content:"";position:fixed;inset:-18px;pointer-events:none;z-index:9999;opacity:var(--grain-opacity);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='1'/%3E%3C/svg%3E");background-repeat:repeat;background-size:200px 200px;background-position:-11px -9px;mix-blend-mode:overlay;transition:opacity var(--theme-dur) var(--theme-ease)}body.home-page:after{content:none;display:none;opacity:0;background:none}a{color:inherit;text-decoration:none}.serif{font-family:Playfair Display,Georgia,Times New Roman,serif}.mono{font-family:JetBrains Mono,SF Mono,monospace}.container{max-width:1040px;margin:0 auto;padding:0 32px}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:10px}@keyframes enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.anim{animation:enter .45s var(--ease) both}::selection{background:#c4a88238;color:#fff}.breadcrumb{display:flex;align-items:center;gap:8px;padding:24px 0 8px;font-size:.78rem;font-weight:500}.breadcrumb a{color:var(--text-muted);transition:color var(--dur) var(--ease)}.breadcrumb a:hover{color:var(--accent)}.breadcrumb .sep{color:var(--text-faint);font-size:.65rem}.breadcrumb .current{color:var(--text-secondary)}button{all:unset;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;appearance:none;-webkit-appearance:none;background:transparent;color:inherit;border:none;padding:0;outline:none}.theme-toggle-btn{position:relative;isolation:isolate;overflow:hidden;transform:translateZ(0)}.theme-toggle-btn:before{content:"";position:absolute;inset:3px;border-radius:inherit;background:radial-gradient(circle at 50% 35%,var(--theme-toggle-glow),transparent 70%);opacity:.8;transition:opacity var(--theme-dur) var(--theme-ease),transform var(--theme-dur) var(--theme-ease)}.theme-toggle-btn svg{position:absolute;inset:0;margin:auto;pointer-events:none;transform-origin:50% 50%;transition:opacity var(--theme-dur) var(--theme-ease),transform var(--theme-dur) var(--theme-ease),filter var(--theme-dur) var(--theme-ease)}.theme-toggle-btn .sun{opacity:0;transform:translateY(2px) scale(.82) rotate(-24deg);filter:drop-shadow(0 0 0 rgba(166,139,99,0))}.theme-toggle-btn .moon{opacity:1;transform:translateY(0) scale(1) rotate(0);filter:drop-shadow(0 0 8px rgba(255,255,255,.05))}:root.light .theme-toggle-btn:before{transform:scale(1.04)}:root.light .theme-toggle-btn .moon{opacity:0;transform:translateY(-2px) scale(.82) rotate(22deg);filter:drop-shadow(0 0 0 rgba(255,255,255,0))}:root.light .theme-toggle-btn .sun{opacity:1;transform:translateY(0) scale(1) rotate(0);filter:drop-shadow(0 0 10px rgba(166,139,99,.18))}:where(.palette-modal,.palette-input-wrap,.palette-item,.palette-item .icon,.palette-input-wrap svg,.palette-input-wrap input){transition:background-color var(--theme-dur) var(--theme-ease),border-color var(--theme-dur) var(--theme-ease),color var(--theme-dur) var(--theme-ease),box-shadow var(--theme-dur) var(--theme-ease),opacity var(--theme-dur) var(--theme-ease)}@media(prefers-reduced-motion:reduce){body,body:after,.theme-toggle-btn:before,.theme-toggle-btn svg{transition:none!important}}
