@font-face{font-family:"Jost";src:url("/fonts/jost.woff2") format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"Mulish";src:url("/fonts/mulish.woff2") format("woff2");font-weight:200 900;font-display:swap}
@font-face{font-family:"Mulish";src:url("/fonts/mulish-italic.woff2") format("woff2");font-weight:200 900;font-style:italic;font-display:swap}
@font-face{font-family:"Playfair Display";src:url("/fonts/playfair-italic.woff2") format("woff2");font-weight:400 900;font-style:italic;font-display:swap}
:root{--ink:#141414;--ink2:#1c1c1c;--ink3:#242424;--hull:#F4F2EC;--hull2:rgba(244,242,236,.62);--hull3:rgba(244,242,236,.38);--accent:#1EC8D8;--accent-pale:#A9E9EF;--mist:#EAF6F8;
--teal-tint:rgba(30,200,216,.08);--teal-line:rgba(30,200,216,.35);--rule:rgba(244,242,236,.14);--rule2:rgba(244,242,236,.08);--good:#7BE0A3;--bad:#F08A8A;
--display:"Jost","Futura","Century Gothic","Helvetica Neue",Arial,sans-serif;--body:"Mulish","Helvetica Neue",Arial,sans-serif;--serif:"Playfair Display",Georgia,serif;--radius:14px;--r2:10px}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ink);color:var(--hull);font-family:var(--body);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
img{max-width:100%;display:block}
h1,h2,h3{font-family:var(--display);font-weight:300;margin:0;letter-spacing:.02em}
h1{font-size:clamp(1.6rem,3vw,2.4rem);text-transform:uppercase;letter-spacing:.16em}
h2{font-size:1.25rem;text-transform:uppercase;letter-spacing:.14em}
h3{font-size:1rem;text-transform:uppercase;letter-spacing:.12em}
.eyebrow{font-family:var(--display);font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;color:var(--accent);font-weight:400}
.muted{color:var(--hull2)}.small{font-size:.82rem}.serif{font-family:var(--serif);font-style:italic;font-weight:400}
.mast{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem clamp(1rem,4vw,3rem);border-bottom:1px solid var(--rule2);position:sticky;top:0;background:rgba(20,20,20,.9);backdrop-filter:blur(10px);z-index:20}
.mast .brand{display:flex;align-items:center;gap:1rem}.mast .brand img{height:26px;width:auto}
.mast .brand .tag{font-family:var(--display);font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--accent);padding-left:1rem;border-left:1px solid var(--rule)}
.mast nav{display:flex;gap:.25rem;align-items:center}
.mast nav a{font-family:var(--display);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--hull2);padding:.55rem .9rem;border-radius:999px}
.mast nav a:hover,.mast nav a.on{color:var(--hull);background:var(--ink3);text-decoration:none}
.wrap{max-width:1440px;margin:0 auto;padding:clamp(1.25rem,3vw,2.5rem) clamp(1rem,4vw,3rem)}
.btn{font-family:var(--display);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;border:1px solid var(--rule);background:transparent;color:var(--hull);padding:.7rem 1.15rem;border-radius:999px;cursor:pointer;white-space:nowrap;transition:.15s;display:inline-flex;align-items:center;gap:.5rem;line-height:1}
.btn:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}
.btn.primary{background:var(--accent);color:var(--ink);border-color:var(--accent);font-weight:500}.btn.primary:hover{background:var(--accent-pale);border-color:var(--accent-pale);color:var(--ink)}
.btn.sm{padding:.5rem .85rem;font-size:.64rem}.btn.danger:hover{border-color:var(--bad);color:var(--bad)}.btn[disabled]{opacity:.4;cursor:default}
.card{background:var(--ink2);border:1px solid var(--rule2);border-radius:var(--radius);padding:1.25rem}
.field{display:flex;flex-direction:column;gap:.35rem;min-width:0}
.field label,.lbl{font-family:var(--display);font-size:.64rem;letter-spacing:.22em;text-transform:uppercase;color:var(--hull2)}
input,select,textarea{font:inherit;color:var(--hull);background:var(--ink3);border:1px solid var(--rule2);border-radius:var(--r2);padding:.6rem .75rem;width:100%;outline:none;transition:border-color .15s}
input:focus,select:focus,textarea:focus{border-color:var(--teal-line)}
select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%231EC8D8' fill='none' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .8rem center;padding-right:2.2rem}
input[type=date]{color-scheme:dark}textarea{min-height:80px;resize:vertical}
input[type=checkbox]{width:auto;accent-color:var(--accent)}
.grid{display:grid;gap:.9rem}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:720px){.g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.g2,.g3,.g4{grid-template-columns:1fr}}
.row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.right{margin-left:auto}
.hr{height:1px;background:var(--rule2);margin:1.25rem 0}
.pill{font-family:var(--display);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;padding:.3rem .7rem;border-radius:999px;border:1px solid var(--rule);color:var(--hull2);white-space:nowrap}
.pill.teal{border-color:var(--teal-line);color:var(--accent);background:var(--teal-tint)}.pill.good{color:var(--good);border-color:rgba(123,224,163,.4)}.pill.bad{color:var(--bad);border-color:rgba(240,138,138,.4)}
.toast{position:fixed;left:50%;bottom:1.5rem;transform:translateX(-50%) translateY(20px);background:var(--hull);color:var(--ink);padding:.7rem 1.2rem;border-radius:999px;font-family:var(--display);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;opacity:0;transition:.25s;z-index:99;pointer-events:none;white-space:nowrap}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.hidden{display:none!important}
table.q{width:100%;border-collapse:collapse;font-size:.9rem}table.q td{padding:.5rem 0;border-bottom:1px solid var(--rule2);vertical-align:top}table.q td.amt{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
table.q tr.total td{border-bottom:0;border-top:1px solid var(--rule);padding-top:.8rem;font-family:var(--display);letter-spacing:.14em;text-transform:uppercase;font-size:.8rem}
table.q tr.total td.amt{font-size:1.25rem;color:var(--accent);letter-spacing:0}
.neg{color:var(--good)}
/* login */
.gate{min-height:100vh;display:grid;place-items:center;padding:2rem}.gate .card{width:min(420px,100%);padding:2rem}
/* dashboard list */
.plist{display:grid;gap:.6rem}.prow{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:center;background:var(--ink2);border:1px solid var(--rule2);border-radius:var(--radius);padding:1rem 1.25rem;transition:.15s}
.prow:hover{border-color:var(--teal-line)}.prow .t{font-family:var(--display);font-size:1.05rem;letter-spacing:.06em}.prow .m{font-size:.8rem;color:var(--hull2)}
/* builder */
.builder{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:1.5rem;align-items:start}
@media(max-width:1100px){.builder{grid-template-columns:1fr}}
.side{position:sticky;top:80px}
.ytile{display:grid;grid-template-columns:120px 1fr auto;gap:1rem;align-items:center;background:var(--ink3);border:1px solid var(--rule2);border-radius:var(--r2);padding:.6rem;cursor:pointer;transition:.15s}
.ytile:hover{border-color:var(--teal-line)}.ytile img{width:120px;height:68px;object-fit:cover;border-radius:6px}
.ytile .n{font-family:var(--display);letter-spacing:.14em;text-transform:uppercase;font-size:.85rem}.ytile .s{font-size:.75rem;color:var(--hull2)}
.ycard{background:var(--ink2);border:1px solid var(--rule2);border-radius:var(--radius);overflow:hidden;margin-bottom:1.25rem}
.ycard .head{display:flex;gap:1rem;align-items:center;padding:.9rem 1.25rem;border-bottom:1px solid var(--rule2);cursor:pointer}
.ycard .head .num{font-family:var(--serif);color:var(--accent);font-size:1.3rem;width:1.6rem}
.ycard .head .n{font-family:var(--display);letter-spacing:.16em;text-transform:uppercase;font-size:.95rem;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ycard .bodyx{padding:1.25rem;display:grid;gap:1.25rem}
.ycard .imgwrap{position:relative;border-radius:var(--r2);overflow:hidden;background:var(--ink3);aspect-ratio:16/9}
.ycard .imgwrap img{width:100%;height:100%;object-fit:cover}
.badge{position:absolute;left:1rem;top:1rem;font-family:var(--display);font-size:.66rem;letter-spacing:.28em;text-transform:uppercase;background:var(--accent);color:var(--ink);padding:.45rem .8rem;border-radius:999px;font-weight:500}
.calc{background:var(--ink3);border:1px solid var(--rule2);border-radius:var(--r2);padding:1rem;display:grid;gap:.9rem}
.section-t{display:flex;align-items:center;gap:.75rem;margin:1.5rem 0 .75rem}.section-t:after{content:"";flex:1;height:1px;background:var(--rule2)}
.drag{cursor:grab;color:var(--hull3)}
.kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem}
.kpi .card{padding:1rem}.kpi .v{font-family:var(--display);font-size:1.8rem;font-weight:300;letter-spacing:.04em;line-height:1.1}.kpi .k{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--hull2);font-family:var(--display);margin-top:.35rem}
.tl{display:grid;gap:.4rem}.tl .e{display:grid;grid-template-columns:150px 1fr;gap:1rem;padding:.55rem .75rem;border-radius:8px;background:var(--ink2);font-size:.85rem;align-items:baseline}
.tl .e .w{font-variant-numeric:tabular-nums;color:var(--hull2);font-size:.78rem}.tl .e.open{border-left:2px solid var(--accent)}.tl .e.thumb{border-left:2px solid var(--good)}.tl .e.feedback{border-left:2px solid var(--accent-pale)}
.bar{height:6px;background:var(--ink3);border-radius:3px;overflow:hidden}.bar i{display:block;height:100%;background:var(--accent)}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.7);display:grid;place-items:center;z-index:50;padding:1rem}.modal .card{width:min(640px,100%);max-height:90vh;overflow:auto;padding:1.5rem}
.copybox{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.78rem;background:var(--ink3);border-radius:var(--r2);padding:.75rem;word-break:break-all}
::selection{background:var(--accent);color:var(--ink)}
