:root{--paper:#faf4ea;--paper-2:#f2e8d7;--card:#fffdf9;--ink:#211f31;--ink-2:#5d5872;--ink-3:#8a8499;--royal:#3a4fc4;--royal-ink:#2a3a9e;--pink:#d986bf;--pink-soft:#f2dcec;--line:#e6dac6;--line-2:#d8c9b0;--ok:#2f8f66;--warn:#b8742c;--danger:#c44d4d;--r:9px}*{box-sizing:border-box}html,body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;font-feature-settings:"ss01";margin:0;padding:0;font-family:Hanken Grotesk,system-ui,sans-serif;font-size:16px;line-height:1.6}body:before{content:"";z-index:-1;pointer-events:none;background-image:radial-gradient(var(--line-2).5px,transparent .5px);opacity:.25;background-size:22px 22px;position:fixed;inset:0}h1,h2,h3,h4{color:var(--ink);letter-spacing:-.01em;margin:0;font-family:Fraunces,Georgia,serif;font-weight:600;line-height:1.08}a{color:var(--royal-ink);text-decoration:none}a:hover{text-underline-offset:3px;text-decoration:underline}.container{max-width:1080px;margin:0 auto;padding:0 28px}.narrow{max-width:540px}.eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);align-items:center;gap:8px;font-size:11.5px;font-weight:600;display:inline-flex}.eyebrow:before{content:"";background:var(--pink);width:22px;height:1.5px;display:inline-block}.site-header{justify-content:space-between;align-items:center;gap:16px;padding:26px 0;display:flex}.hero{max-width:720px;padding:64px 0 36px}.hero h1{margin:18px 0;font-size:clamp(38px,6vw,64px);font-weight:600}.hero h1 em{color:var(--royal);font-style:italic}.hero .lead{color:var(--ink-2);max-width:560px;font-size:19px}.section-head{border-bottom:1.5px solid var(--ink);justify-content:space-between;align-items:baseline;gap:16px;margin:0 0 26px;padding-bottom:14px;display:flex}.section-head h2{font-size:24px}.btn{border-radius:var(--r);cursor:pointer;border:1.5px solid #0000;justify-content:center;align-items:center;gap:8px;padding:12px 20px;font-family:inherit;font-size:14.5px;font-weight:600;line-height:1;transition:transform .12s,background .15s,border-color .15s,color .15s;display:inline-flex}.btn svg{width:16px;height:16px}.btn-primary{background:var(--ink);color:var(--paper)}.btn-primary:hover{background:var(--royal-ink);text-decoration:none}.btn-ghost{border-color:var(--line-2);color:var(--ink);background:0 0}.btn-ghost:hover{border-color:var(--ink);text-decoration:none}.btn-pink{background:var(--royal);color:#fff}.btn-pink:hover{background:var(--royal-ink);text-decoration:none}.btn-sm{border-radius:7px;padding:8px 13px;font-size:13px}.btn-outline{border-color:var(--line-2);color:var(--ink);background:0 0}.btn-outline:hover{border-color:var(--ink);text-decoration:none}.btn-danger{border-color:var(--danger);color:var(--danger);background:0 0}.btn-danger:hover{background:var(--danger);color:#fff;text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.link-arrow{color:var(--royal-ink);align-items:center;gap:6px;font-weight:600;display:inline-flex}.link-arrow svg{width:16px;height:16px;transition:transform .15s}.link-arrow:hover{text-decoration:none}.link-arrow:hover svg{transform:translate(3px)}.grid{gap:18px;display:grid}.grid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);flex-direction:column;padding:26px;transition:border-color .15s;display:flex}.card:hover{border-color:var(--line-2)}.card h3{margin:0 0 6px;font-size:21px}.card-num{color:var(--ink-3);font-family:Fraunces,serif;font-size:13px;font-weight:500}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:30px}.muted{color:var(--ink-2)}.meta{color:var(--ink-2);flex-wrap:wrap;gap:16px;margin:14px 0;font-size:13.5px;display:flex}.meta span{align-items:center;gap:7px;display:inline-flex}.meta svg{width:15px;height:15px;color:var(--ink-3)}.price{color:var(--ink);font-family:Fraunces,serif;font-size:22px;font-weight:600}.pill{letter-spacing:.06em;text-transform:uppercase;border-radius:5px;align-items:center;gap:5px;padding:4px 9px;font-size:11px;font-weight:600;display:inline-flex}.pill svg{width:12px;height:12px}.pill-blue{color:var(--royal-ink);background:#e7ebfb}.pill-pink{background:var(--pink-soft);color:#9b3f7f}.pill-ok{color:var(--ok);background:#def0e6}.pill-warn{color:var(--warn);background:#f5e6d2}.field{margin-bottom:17px}.field label{letter-spacing:.02em;color:var(--ink);margin-bottom:7px;font-size:13px;font-weight:600;display:block}.field input,.field textarea,.field select{border:1.5px solid var(--line-2);background:var(--paper);width:100%;color:var(--ink);border-radius:8px;padding:12px 14px;font-family:inherit;font-size:15px;transition:border-color .15s,box-shadow .15s}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--royal);background:#fff;outline:none;box-shadow:0 0 0 3px #3a4fc41f}.form-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:30px}.auth-wrap{place-items:center;min-height:100dvh;padding:24px;display:grid}.auth-card{width:100%;max-width:410px}.notice{border:1px solid #0000;border-radius:8px;margin-bottom:16px;padding:13px 16px;font-size:14px}.notice-err{color:#9c2f2f;background:#fae6e6;border-color:#f0cccc}.notice-ok{color:var(--ok);background:#def0e6;border-color:#c4e3d2}.notice-info{color:var(--royal-ink);background:#e7ebfb;border-color:#d2daf2}.site-footer{border-top:1px solid var(--line);color:var(--ink-2);margin-top:80px;padding:28px 0;font-size:13.5px}.material{border:1px solid var(--line);background:var(--card);border-radius:10px;align-items:center;gap:16px;margin-bottom:10px;padding:18px;transition:border-color .15s;display:flex}.material:hover{border-color:var(--line-2)}.material .ic{background:var(--paper-2);width:40px;height:40px;color:var(--royal-ink);border-radius:9px;flex-shrink:0;place-items:center;display:grid}.material .ic svg{width:19px;height:19px}.material .grow{flex:1;min-width:0}.material h4{margin:0;font-family:Hanken Grotesk,sans-serif;font-size:15.5px;font-weight:600}.material.locked{opacity:.55}table.tbl{border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:10px;width:100%;overflow:hidden}table.tbl th,table.tbl td{text-align:left;border-bottom:1px solid var(--line);padding:12px 15px;font-size:14px}table.tbl th{background:var(--paper-2);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2);font-size:12px;font-weight:600}table.tbl tr:last-child td{border-bottom:none}.admin-layout{grid-template-columns:232px 1fr;min-height:100dvh;display:grid}.admin-sidebar{background:var(--card);border-right:1px solid var(--line);flex-direction:column;height:100dvh;padding:26px 16px;display:flex;position:sticky;top:0}.admin-nav{flex-direction:column;gap:2px;display:flex}.admin-nav-item{color:var(--ink-2);border-radius:8px;align-items:center;gap:11px;padding:10px 12px;font-size:14.5px;font-weight:500;display:flex}.admin-nav-item svg{width:18px;height:18px}.admin-nav-item:hover{background:var(--paper);color:var(--ink);text-decoration:none}.admin-nav-item.active{background:var(--ink);color:var(--paper);font-weight:600}.admin-main{max-width:1120px;padding:36px 40px}.admin-main h1{margin:0 0 6px;font-size:28px}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:22px;display:flex}.row-actions{gap:6px;display:flex}.code-chip{background:var(--paper-2);letter-spacing:.5px;border-radius:5px;padding:3px 8px;font-family:Fraunces,serif;font-size:13px}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#211f3173;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:var(--card);border-radius:var(--r);border:1px solid var(--line-2);width:100%;max-width:520px;max-height:90dvh;padding:28px;overflow:auto;box-shadow:0 24px 70px #211f3138}.modal h3{margin-top:0;font-size:22px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.stat{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:18px 20px}.stat .n{color:var(--ink);font-family:Fraunces,serif;font-size:30px;font-weight:600;line-height:1}.stat .l{color:var(--ink-2);margin-top:6px;font-size:12.5px}@media (max-width:820px){.admin-layout{grid-template-columns:1fr}.admin-sidebar{flex-flow:wrap;align-items:center;height:auto;position:static}.admin-nav{flex-flow:wrap}}
