@import url("https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&family=Spectral:ital,wght@0,400;0,600;1,400&family=Fredoka:wght@400;500;600&family=Space+Mono:wght@400;700&display=swap");:root{--paper:oklch(0.985 0.005 85);--paper-2:oklch(0.965 0.007 85);--surface:#ffffff;--ink:oklch(0.23 0.012 65);--ink-soft:oklch(0.40 0.012 65);--muted:oklch(0.56 0.010 65);--faint:oklch(0.70 0.008 70);--line:oklch(0.90 0.008 75);--line-strong:oklch(0.83 0.010 70);--accent:oklch(0.585 0.155 41);--accent-press:oklch(0.515 0.150 40);--accent-ink:#ffffff;--accent-soft:oklch(0.95 0.035 50);--accent-line:oklch(0.83 0.075 47);--ok:oklch(0.58 0.10 155);--sans:"Hanken Grotesk",system-ui,-apple-system,sans-serif;--mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",monospace;--r:12px;--r-sm:9px;--r-xs:6px;--maxw:820px;--shadow-1:0 1px 2px oklch(0.23 0.012 65/0.05);--shadow-2:0 4px 14px oklch(0.23 0.012 65/0.07),0 1px 3px oklch(0.23 0.012 65/0.06);--shadow-3:0 18px 44px oklch(0.23 0.012 65/0.14),0 4px 12px oklch(0.23 0.012 65/0.08);--ease:cubic-bezier(.2,.7,.2,1)}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{overflow-x:hidden}::selection{background:var(--accent-soft);color:var(--ink)}button{font-family:inherit}.page-bg{position:fixed;inset:0;z-index:0;pointer-events:none;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:44px 44px;opacity:.3;-webkit-mask-image:radial-gradient(120% 80% at 50% 0,#000 0,transparent 78%);mask-image:radial-gradient(120% 80% at 50% 0,#000 0,transparent 78%)}.shell{position:relative;z-index:1}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(16px,4vw,28px)}.hero{padding:clamp(48px,8vw,96px) 0 clamp(28px,5vw,52px)}.hero-eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);display:flex;align-items:center;gap:12px;margin-bottom:22px}.hero-eyebrow:after{content:"";height:1px;flex:1 1;background:var(--line-strong);max-width:120px}.hero h1{font-size:clamp(34px,6vw,58px);line-height:1.03;letter-spacing:-.035em;font-weight:800;margin:0 0 22px;max-width:16ch;text-wrap:balance}.hero h1 em{font-style:normal;color:var(--accent)}.hero-lead{font-size:clamp(16px,2.1vw,19px);color:var(--ink-soft);max-width:56ch;line-height:1.55;margin:0}.hero-meta{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:34px}.hero-meta span{font-family:var(--mono);font-size:11.5px;letter-spacing:.04em;color:var(--muted);display:inline-flex;align-items:center;gap:8px}.hero-meta b{color:var(--ink);font-weight:700}.divider{display:flex;align-items:baseline;gap:18px;padding:clamp(40px,6vw,64px) 0 22px;border-top:1px solid var(--line)}.divider-num{font-family:var(--mono);font-size:13px;font-weight:500;color:var(--accent);letter-spacing:.05em;flex:none;padding-top:4px}.divider-titles h2{font-size:clamp(22px,3.4vw,30px);letter-spacing:-.02em;font-weight:800;margin:0 0 6px;line-height:1.1}.divider-titles p{margin:0;color:var(--muted);font-size:14.5px;max-width:60ch}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-1)}.card-pad{padding:clamp(20px,3vw,28px)}.grid-2{display:grid;grid-template-columns:1fr 1fr;grid-gap:18px;gap:18px}@media (max-width:620px){.grid-2{grid-template-columns:1fr}}.field{display:flex;flex-direction:column;gap:8px;min-width:0}.label{font-family:var(--mono);font-size:11px;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-soft);font-weight:500;line-height:1.4;display:block}.label .opt{color:var(--faint);letter-spacing:.07em;margin-left:7px}.hint{font-size:12.5px;color:var(--muted);line-height:1.45}.input,.textarea{width:100%;font-family:var(--sans);font-size:15px;color:var(--ink);background:var(--paper);border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:11px 13px;line-height:1.45;transition:border-color .18s var(--ease),box-shadow .18s var(--ease),background .18s var(--ease);-webkit-appearance:none;-moz-appearance:none;appearance:none}.input::placeholder,.textarea::placeholder{color:var(--faint)}.input:hover,.textarea:hover{border-color:var(--ink-soft)}.input:focus,.textarea:focus{outline:none;background:var(--surface);border-color:var(--accent);box-shadow:0 0 0 3.5px var(--accent-soft)}.textarea{resize:vertical;min-height:84px}.input.is-error,.textarea.is-error{border-color:var(--accent);box-shadow:0 0 0 3.5px var(--accent-soft)}.input-affix{position:relative}.input-affix,.input-affix .pre{display:flex;align-items:center}.input-affix .pre{position:absolute;left:13px;font-family:var(--mono);font-size:13px;color:var(--faint);pointer-events:none}.input-affix .input{padding-left:38px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--sans);font-size:14.5px;font-weight:600;letter-spacing:-.005em;padding:11px 18px;border-radius:var(--r-sm);cursor:pointer;border:1px solid transparent;background:none;color:var(--ink);white-space:nowrap;transition:transform .12s var(--ease),background .18s var(--ease),border-color .18s var(--ease),box-shadow .18s var(--ease),color .18s var(--ease)}.btn:active{transform:translateY(1px) scale(.995)}.btn svg{width:17px;height:17px;flex:none}.btn-primary{background:var(--ink);color:var(--paper);box-shadow:var(--shadow-2)}.btn-primary:hover{background:oklch(.3 .012 65)}.btn-primary:disabled{background:var(--line-strong);color:var(--faint);cursor:not-allowed;box-shadow:none;transform:none}.btn-accent{background:var(--accent);color:var(--accent-ink);box-shadow:var(--shadow-2)}.btn-accent:hover{background:var(--accent-press)}.btn-ghost{border-color:var(--line-strong);color:var(--ink-soft);background:var(--surface)}.btn-ghost:hover{border-color:var(--ink-soft);color:var(--ink);background:var(--paper-2)}.btn-add{width:100%;border:1.5px dashed var(--line-strong);color:var(--ink-soft);background:linear-gradient(var(--paper),var(--paper));padding:15px;border-radius:var(--r);font-weight:600}.btn-add:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.icon-btn{display:inline-grid;place-items:center;width:34px;height:34px;flex:none;border-radius:var(--r-xs);border:1px solid transparent;color:var(--muted);background:none;cursor:pointer;transition:background .15s var(--ease),color .15s var(--ease),border-color .15s var(--ease),transform .12s var(--ease)}.icon-btn svg{width:17px;height:17px}.icon-btn:hover{background:var(--paper-2);color:var(--ink);border-color:var(--line)}.icon-btn:active{transform:scale(.92)}.icon-btn.danger:hover{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-line)}.icon-btn:disabled{opacity:.35;cursor:not-allowed}.color-row{display:flex;flex-direction:column;gap:10px}.swatches{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.swatch{width:30px;height:30px;border-radius:999px;cursor:pointer;padding:0;border:1px solid oklch(.5 .01 65/.18);position:relative;transition:transform .14s var(--ease),box-shadow .14s var(--ease)}.swatch:hover{transform:scale(1.1)}.swatch.active{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--ink)}.swatch-custom{width:30px;height:30px;border-radius:999px;cursor:pointer;position:relative;overflow:hidden;border:1px dashed var(--line-strong);display:grid;place-items:center;background:conic-gradient(from 0deg,#e7625f,#f4c95d,#6cc08b,#5b8def,#b06ad6,#e7625f)}.swatch-custom input{position:absolute;inset:0;opacity:0;cursor:pointer}.swatch-custom .plus{position:relative;z-index:1;width:16px;height:16px;background:var(--surface);border-radius:999px;display:grid;place-items:center;color:var(--ink)}.color-value{font-family:var(--mono);font-size:11.5px;color:var(--muted);letter-spacing:.03em;display:inline-flex;align-items:center;gap:8px}.color-value .chip{width:13px;height:13px;border-radius:4px;border:1px solid oklch(.5 .01 65/.2)}.chips{display:flex;flex-wrap:wrap;gap:10px}.chip-font{cursor:pointer;border:1px solid var(--line-strong);background:var(--surface);border-radius:var(--r-sm);padding:11px 15px 12px;text-align:left;min-width:116px;transition:border-color .16s var(--ease),background .16s var(--ease),transform .12s var(--ease),box-shadow .16s var(--ease)}.chip-font:hover{border-color:var(--ink-soft);transform:translateY(-1px)}.chip-font.active{border-color:var(--ink);background:var(--ink);box-shadow:var(--shadow-2)}.chip-font.active .cf-name,.chip-font.active .cf-sample{color:var(--paper)}.chip-font.active .cf-name{opacity:.65}.cf-name{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:5px}.cf-sample{font-size:21px;color:var(--ink);letter-spacing:-.01em;line-height:1}.stack{display:flex;flex-direction:column;gap:14px}.ref-block-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.ref-count{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--muted)}.ref-list{display:flex;flex-direction:column;gap:10px}.ref-empty{margin:2px 0 4px;font-size:13.5px;color:var(--muted)}.ref-line{display:flex;align-items:flex-start;gap:11px}.ref-line-num{font-family:var(--mono);font-size:11px;color:var(--muted);width:22px;height:38px;flex:none;display:grid;place-items:center}.ref-line-fields{flex:1 1;min-width:0;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);grid-gap:9px;gap:9px}.ref-line .icon-btn{margin-top:3px}@media (max-width:620px){.ref-line-fields{grid-template-columns:1fr}}.ref-add{width:100%;margin-top:14px;border-style:dashed}.ref-add:disabled{color:var(--faint);border-color:var(--line);background:var(--paper);cursor:not-allowed}.sections-list{display:flex;flex-direction:column;gap:16px}.section-card{position:relative;transition:transform .2s var(--ease),opacity .2s var(--ease),box-shadow .2s var(--ease),border-color .2s var(--ease)}.section-card.dragging{opacity:.55;box-shadow:var(--shadow-3);border-color:var(--accent-line);transform:scale(1.012)}.section-card.drop-before{box-shadow:0 -3px 0 -1px var(--accent),var(--shadow-1)}.section-card.drop-after{box-shadow:0 3px 0 -1px var(--accent),var(--shadow-1)}.section-head{display:flex;align-items:center;gap:12px;padding:13px 14px 13px 8px;border-bottom:1px solid var(--line)}.drag-handle{display:grid;place-items:center;width:30px;height:38px;flex:none;color:var(--faint);cursor:-webkit-grab;cursor:grab;border-radius:6px;transition:color .15s var(--ease),background .15s var(--ease);touch-action:none}.drag-handle:hover{color:var(--ink);background:var(--paper-2)}.drag-handle:active{cursor:-webkit-grabbing;cursor:grabbing;color:var(--accent)}.drag-handle svg{width:16px;height:16px}.section-tag{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);display:inline-flex;align-items:center;gap:9px;flex:none}.section-tag .num{display:grid;place-items:center;min-width:24px;height:24px;padding:0 6px;border-radius:6px;background:var(--accent-soft);color:var(--accent);font-size:11.5px;font-weight:500;border:1px solid var(--accent-line)}.section-title-peek{font-family:var(--sans);font-size:14px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1;min-width:0}.section-title-peek.empty{color:var(--faint);font-weight:500;font-style:italic}.section-actions{display:flex;align-items:center;gap:2px;flex:none}.section-body{padding:clamp(18px,2.6vw,24px);gap:18px}.section-body,.uploader{display:flex;flex-direction:column}.uploader{gap:12px}.thumbs{display:flex;flex-wrap:wrap;gap:10px}.thumb{position:relative;width:92px;height:92px;border-radius:var(--r-sm);overflow:hidden;border:1px solid var(--line-strong);background:var(--paper-2);flex:none;animation:pop .26s var(--ease)}.thumb img{width:100%;height:100%;object-fit:cover;display:block}.thumb-x{position:absolute;top:5px;right:5px;width:22px;height:22px;border-radius:999px;background:oklch(.23 .012 65/.62);color:#fff;border:0;cursor:pointer;display:grid;place-items:center;opacity:0;transform:scale(.8);transition:opacity .15s var(--ease),transform .15s var(--ease),background .15s var(--ease);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.thumb:hover .thumb-x{opacity:1;transform:scale(1)}.thumb-x:hover{background:var(--accent)}.thumb-x svg{width:12px;height:12px}.thumb-name{position:absolute;left:0;right:0;bottom:0;padding:4px 6px;font-family:var(--mono);font-size:8.5px;letter-spacing:.02em;color:#fff;background:linear-gradient(transparent,oklch(.23 .012 65/.66));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dropzone{border:1.5px dashed var(--line-strong);border-radius:var(--r-sm);padding:16px;display:flex;align-items:center;gap:13px;cursor:pointer;color:var(--muted);background:var(--paper);position:relative;transition:border-color .16s var(--ease),background .16s var(--ease),color .16s var(--ease)}.dropzone.over,.dropzone:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.dropzone input{position:absolute;inset:0;opacity:0;cursor:pointer}.dropzone .dz-ic{width:34px;height:34px;border-radius:8px;display:grid;place-items:center;background:var(--surface);border:1px solid var(--line);color:inherit;flex:none}.dropzone .dz-ic svg{width:18px;height:18px}.dropzone .dz-t{font-size:13.5px;font-weight:600;color:var(--ink)}.dropzone .dz-s{font-size:12px;color:var(--muted)}.dropzone:hover .dz-t{color:var(--accent)}.logo-up{display:flex;align-items:center;gap:14px}.logo-preview{width:64px;height:64px;border-radius:var(--r-sm);border:1px solid var(--line-strong);background:var(--paper-2);display:grid;place-items:center;overflow:hidden;flex:none;color:var(--faint)}.logo-preview img{width:100%;height:100%;object-fit:contain;padding:6px}.submit-card{overflow:hidden}.submit-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:18px;gap:18px}@media (max-width:620px){.submit-grid{grid-template-columns:1fr}}.checklist{display:flex;flex-direction:column;gap:9px;margin:4px 0 0;padding:0;list-style:none}.checklist li{display:flex;align-items:center;gap:11px;font-size:13.5px;color:var(--muted)}.checklist .tick{width:20px;height:20px;border-radius:999px;flex:none;display:grid;place-items:center;border:1px solid var(--line-strong);color:transparent;transition:all .2s var(--ease)}.checklist li.ok{color:var(--ink)}.checklist li.ok .tick{background:var(--ok);border-color:var(--ok);color:#fff}.checklist .tick svg{width:12px;height:12px}.gdpr-row{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--paper);margin-top:16px;cursor:pointer}.gdpr-row input[type=checkbox]{margin-top:2px;accent-color:var(--accent);width:16px;height:16px;cursor:pointer;flex:none}.gdpr-row label{font-size:13px;color:var(--ink-soft);line-height:1.5;cursor:pointer}.gdpr-row.unchecked{border-color:var(--accent-line);background:var(--accent-soft)}.submit-status{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:var(--r-sm);font-size:13.5px;font-weight:600}.submit-status.loading{background:var(--paper-2);color:var(--ink-soft);border:1px solid var(--line)}.submit-status.error{background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent-line)}.submit-status.success{background:oklch(.95 .04 155);color:oklch(.45 .1 155);border:1px solid oklch(.8 .08 155)}.result{margin-top:20px;border-top:1px solid var(--line);padding-top:20px;animation:slidein .4s var(--ease)}.result-actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(20px);background:var(--ink);color:var(--paper);padding:11px 18px;border-radius:999px;font-size:13.5px;font-weight:600;box-shadow:var(--shadow-3);z-index:80;opacity:0;pointer-events:none;transition:opacity .25s var(--ease),transform .25s var(--ease);display:inline-flex;align-items:center;gap:9px}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.toast svg{width:16px;height:16px;color:var(--ok)}.empty{text-align:center;padding:30px 20px;color:var(--muted);border:1.5px dashed var(--line);border-radius:var(--r);background:var(--paper)}.empty .ic{width:40px;height:40px;margin:0 auto 12px;color:var(--faint)}.empty p{margin:0;font-size:14px}.admin-table{width:100%;border-collapse:collapse}.admin-table th{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:500;padding:10px 14px;text-align:left}.admin-table td,.admin-table th{border-bottom:1px solid var(--line)}.admin-table td{padding:12px 14px;font-size:14px;vertical-align:middle}.admin-table tr:hover td{background:var(--paper)}.badge{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;padding:3px 9px;border-radius:999px;font-weight:500}.badge-draft{background:var(--paper-2);color:var(--muted);border:1px solid var(--line)}.badge-submitted{background:oklch(.94 .06 155);color:oklch(.4 .12 155);border:1px solid oklch(.82 .1 155)}.foot{padding:60px 0 80px;text-align:center;color:var(--faint);font-family:var(--mono);font-size:11px;letter-spacing:.08em}@keyframes pop{0%{transform:scale(.84)}to{transform:scale(1)}}@keyframes slidein{0%{transform:translateY(10px)}to{transform:translateY(0)}}@keyframes cardin{0%{transform:translateY(14px) scale(.992)}to{transform:translateY(0) scale(1)}}@keyframes spin{to{transform:rotate(1turn)}}.animate-in{animation:cardin .36s var(--ease)}.spinning{animation:spin 1s linear infinite}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}