:root{
  /* chrome neutrals — graphite with a faint green bias, warm paper */
  --paper:#F6F4EF;
  --paper-2:#EEEDE6;
  --ink:#16201C;
  --ink-soft:#3A443E;
  --mid:#5C665F;
  --hair:rgba(20,30,25,.12);
  --hair-2:rgba(20,30,25,.07);
  --card:#FFFFFF;
  --instrument:#2E7D74;      /* muted teal, radar motif only */
  --shadow:0 1px 2px rgba(15,25,20,.05), 0 18px 40px -22px rgba(15,25,20,.35);
  --radius:18px;
  --maxw:1140px;
  --mono:ui-monospace,"SF Mono","Cascadia Code",Consolas,"Liberation Mono",monospace;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --display:"Helvetica Neue","Arial Nova",Arial,"Segoe UI",system-ui,sans-serif;
  --f-barlow:"Barlow Semi Condensed",var(--display);
  --f-montserrat:"Montserrat",var(--display);
  --f-plex:"IBM Plex Sans",var(--sans);
  /* locked brand (customer selected): forest + orange + white */
  --pg-forest:#1E3D2B;
  --pg-orange:#F26A21;
}
@media (prefers-color-scheme:dark){
  :root{
    --paper:#0F1512; --paper-2:#141B17; --ink:#E9EDE7; --ink-soft:#C2CABF;
    --mid:#8D968E; --hair:rgba(220,235,225,.14); --hair-2:rgba(220,235,225,.07);
    --card:#161E1A; --instrument:#4FB3A6;
    --shadow:0 1px 2px rgba(0,0,0,.4), 0 22px 46px -22px rgba(0,0,0,.7);
  }
}
:root[data-theme="light"]{
  --paper:#F6F4EF; --paper-2:#EEEDE6; --ink:#16201C; --ink-soft:#3A443E;
  --mid:#5C665F; --hair:rgba(20,30,25,.12); --hair-2:rgba(20,30,25,.07);
  --card:#FFFFFF; --instrument:#2E7D74;
  --shadow:0 1px 2px rgba(15,25,20,.05), 0 18px 40px -22px rgba(15,25,20,.35);
}
:root[data-theme="dark"]{
  --paper:#0F1512; --paper-2:#141B17; --ink:#E9EDE7; --ink-soft:#C2CABF;
  --mid:#8D968E; --hair:rgba(220,235,225,.14); --hair-2:rgba(220,235,225,.07);
  --card:#161E1A; --instrument:#4FB3A6;
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 22px 46px -22px rgba(0,0,0,.7);
}

*{box-sizing:border-box}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);line-height:1.55;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--paper);padding:.6rem 1rem;border-radius:0 0 8px 0;z-index:50}
.skip:focus{left:0}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(18px,4vw,40px)}
a{color:inherit}
:focus-visible{outline:2.5px solid var(--instrument);outline-offset:3px;border-radius:4px}
img{max-width:100%;height:auto}

/* ---- top bar ---- */
.topbar{border-bottom:1px solid var(--hair)}
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:16px;padding-bottom:16px}
.rek{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:.72rem;color:var(--mid)}
.rek b{color:var(--ink);letter-spacing:.14em}
.rek .dot{width:9px;height:9px;border-radius:50%;background:var(--instrument);box-shadow:0 0 0 4px color-mix(in srgb,var(--instrument) 22%,transparent)}
.stamp{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--mid);font-family:var(--mono)}

/* ---- hero ---- */
.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--hair)}
.hero .wrap{padding-top:clamp(46px,7vw,86px);padding-bottom:clamp(40px,6vw,72px);position:relative;z-index:2}
.eyebrow{display:inline-flex;align-items:center;gap:9px;font-family:var(--mono);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--instrument);margin:0 0 20px}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--instrument);display:inline-block}
h1{
  font-family:var(--display);font-weight:800;
  font-size:clamp(2.1rem,5.4vw,4rem);line-height:1.02;letter-spacing:-.02em;
  margin:0 0 22px;max-width:16ch;text-wrap:balance;
}
h1 em{font-style:normal;color:var(--instrument)}
.lede{font-size:clamp(1.02rem,1.7vw,1.24rem);color:var(--ink-soft);max-width:60ch;margin:0 0 8px}
.lede + .lede{margin-top:14px}
.heromark{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.9}

.brief{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-top:38px}
.brief div{background:var(--card);border:1px solid var(--hair);border-radius:12px;padding:15px 16px;box-shadow:var(--shadow)}
.brief .k{font-family:var(--mono);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--mid);margin-bottom:7px}
.brief .v{font-size:.92rem;color:var(--ink);line-height:1.4}
.brief .v b{color:var(--instrument)}

/* ---- section head ---- */
.options{padding-top:clamp(40px,6vw,72px);padding-bottom:20px}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:30px}
.sec-head h2{font-family:var(--display);font-weight:800;letter-spacing:-.01em;font-size:clamp(1.4rem,2.6vw,2rem);margin:0}
.sec-head p{margin:6px 0 0;color:var(--mid);max-width:44ch;font-size:.95rem}
.count{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mid);white-space:nowrap}

/* ---- palette board ---- */
.board{
  background:var(--card);border:1px solid var(--hair);border-radius:var(--radius);
  box-shadow:var(--shadow);overflow:hidden;margin-bottom:34px;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  scroll-margin-top:20px;
}
.board:hover{transform:translateY(-3px)}
.board.is-selected{border-color:var(--pal-primary);box-shadow:0 0 0 2px var(--pal-primary), var(--shadow)}
.board-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:0}
@media (max-width:860px){.board-grid{grid-template-columns:minmax(0,1fr)}}

/* left: lockups on the palette's ground */
.stage{position:relative;min-width:0;padding:clamp(24px,3.4vw,40px);display:flex;flex-direction:column;gap:26px;
  background:linear-gradient(180deg, color-mix(in srgb,var(--pal-primary) 6%,var(--card)), var(--card));
  border-right:1px solid var(--hair)}
@media (max-width:860px){.stage{border-right:none;border-bottom:1px solid var(--hair)}}
.badge-name{position:absolute;top:18px;right:18px;font-family:var(--mono);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--mid)}

.lockup{display:flex;align-items:center;gap:18px;flex-wrap:wrap;min-width:0}
.lockup .mark{flex:0 0 auto}
.word{display:flex;flex-direction:column;line-height:1;min-width:0}
.word .pre{font-family:var(--display);font-weight:700;letter-spacing:.34em;text-transform:uppercase;
  font-size:.72rem;color:var(--pal-secondary);margin-bottom:6px;padding-left:2px}
.word .gpr{font-family:var(--display);font-weight:800;letter-spacing:-.02em;font-size:clamp(2.4rem,5.2vw,3.4rem);color:var(--pal-primary)}
.word .gpr span{color:var(--pal-secondary)}

.reverse{background:var(--pal-primary);border-radius:12px;padding:20px 22px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;min-width:0}
.reverse .word .pre{color:color-mix(in srgb,var(--pal-accent) 88%,#fff)}
.reverse .word .gpr{color:#fff}
.reverse .word .gpr span{color:var(--pal-accent)}
.stage-label{display:block;font-family:var(--mono);font-size:.64rem;letter-spacing:.15em;text-transform:uppercase;color:var(--mid);margin-bottom:10px}

/* right column: swatches + application + action */
.detail{min-width:0;padding:clamp(24px,3.4vw,36px);display:flex;flex-direction:column;gap:22px}
.pal-title{margin:0}
.pal-title .nm{font-family:var(--display);font-weight:800;font-size:1.5rem;letter-spacing:-.01em;display:block}
.pal-title .desc{color:var(--mid);font-size:.9rem;margin-top:4px;display:block;max-width:38ch}

.swatches{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.sw{border-radius:10px;padding:10px 9px;min-height:96px;display:flex;flex-direction:column;justify-content:space-between;border:1px solid var(--hair-2)}
.sw .role{font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;opacity:.85}
.sw .hex{font-family:var(--mono);font-size:.66rem;letter-spacing:.02em}
.sw.on-dark{color:#fff}.sw.on-dark .role{color:rgba(255,255,255,.82)}
.sw.on-light{color:var(--ink)}.sw.on-light .role{color:var(--ink-soft)}

.apply{border-top:1px solid var(--hair);padding-top:18px}
.apply .lbl{font-family:var(--mono);font-size:.64rem;letter-spacing:.15em;text-transform:uppercase;color:var(--mid);margin-bottom:12px}
.apply-row{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap}
.apply-item{display:flex;flex-direction:column;align-items:center;gap:7px}
.apply-item span{font-size:.66rem;color:var(--mid)}

.why{font-size:.9rem;color:var(--ink-soft);line-height:1.5}
.why b{color:var(--pal-primary)}

.choose{margin-top:auto;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.btn-select{
  appearance:none;cursor:pointer;font-family:var(--sans);font-weight:700;font-size:.92rem;
  padding:12px 20px;border-radius:11px;background:transparent;color:var(--pal-primary);
  border:1.5px solid var(--pal-primary);display:inline-flex;align-items:center;gap:9px;
  transition:background .2s ease,color .2s ease,transform .1s ease;
}
.btn-select:hover{background:color-mix(in srgb,var(--pal-primary) 10%,transparent)}
.btn-select:active{transform:translateY(1px)}
.btn-select.is-on{background:var(--pal-primary);color:#fff}
.selnote{font-size:.8rem;color:var(--mid);font-family:var(--mono);letter-spacing:.04em}

/* ---- type specimens ---- */
.type-sec{padding-top:clamp(28px,4vw,52px)}
.type-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
@media (max-width:860px){.type-grid{grid-template-columns:minmax(0,1fr)}}
.spec{
  background:var(--card);border:1px solid var(--hair);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:clamp(22px,2.6vw,30px);display:flex;flex-direction:column;gap:16px;
  transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;scroll-margin-top:20px;
}
.spec:hover{transform:translateY(-3px)}
.spec.is-selected{border-color:var(--instrument);box-shadow:0 0 0 2px var(--instrument),var(--shadow)}
.spec .flabel{font-family:var(--mono);font-size:.64rem;letter-spacing:.15em;text-transform:uppercase;color:var(--instrument)}
.spec .fname{font-family:var(--display);font-weight:800;font-size:1.2rem;letter-spacing:-.01em;margin:-6px 0 2px}
.spec-lockup{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:20px 0;display:flex;flex-direction:column;align-items:flex-start}
.spec-lockup .pw{font-size:clamp(2.5rem,6vw,3.5rem);line-height:.95;color:var(--ink);letter-spacing:-.015em}
.spec-lockup .pg{font-size:1.2rem;letter-spacing:.16em;text-transform:uppercase;color:var(--mid);margin-top:6px}
.spec .glyphs{color:var(--ink-soft);line-height:1.35}
.spec .glyphs .big{font-size:1.35rem;display:block;margin-bottom:2px}
.spec .glyphs .small{font-size:.95rem;color:var(--mid)}
.spec .fwhy{font-size:.88rem;color:var(--ink-soft);line-height:1.5;margin:0}
.spec .choose{margin-top:auto}
.spec .btn-select{color:var(--instrument);border-color:var(--instrument)}
.spec .btn-select:hover{background:color-mix(in srgb,var(--instrument) 10%,transparent)}
.spec .btn-select.is-on{background:var(--instrument);color:#fff}

/* fonts applied */
.f-barlow{font-family:var(--f-barlow)} .f-barlow .pw,.f-barlow .big{font-weight:700}
.f-montserrat{font-family:var(--f-montserrat)} .f-montserrat .pw,.f-montserrat .big{font-weight:800}
.f-plex{font-family:var(--f-plex)} .f-plex .pw,.f-plex .big{font-weight:700}
.spec .pg,.spec .small{font-weight:500}

/* ---- send / submission form ---- */
.send{margin-top:clamp(34px,5vw,60px);background:var(--paper-2);border:1px solid var(--hair);border-radius:var(--radius);padding:clamp(24px,3.4vw,44px)}
.send-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,3vw,44px)}
@media (max-width:820px){.send-grid{grid-template-columns:minmax(0,1fr)}}
.send h2{font-family:var(--display);font-weight:800;font-size:clamp(1.5rem,2.8vw,2.1rem);margin:0 0 12px;letter-spacing:-.01em}
.send .intro{color:var(--ink-soft);font-size:.98rem;margin:0 0 22px;max-width:42ch}
.picks{display:flex;flex-direction:column;gap:12px}
.pick{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--hair);border-radius:12px;padding:13px 15px}
.pick .pk-k{font-family:var(--mono);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mid);width:58px;flex:0 0 auto}
.pick .pk-v{font-weight:700;color:var(--ink)}
.pick .pk-v.empty{color:var(--mid);font-weight:500}
.pick .pk-dot{width:16px;height:16px;border-radius:50%;flex:0 0 auto;border:1px solid var(--hair);background:var(--pk-color,transparent)}

.form-field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.form-field label{font-size:.82rem;font-weight:600;color:var(--ink-soft)}
.form-field label .req{color:var(--instrument)}
.form-field input,.form-field textarea{
  font-family:var(--sans);font-size:.98rem;color:var(--ink);background:var(--card);
  border:1.5px solid var(--hair);border-radius:11px;padding:12px 14px;width:100%;
  transition:border-color .2s ease;
}
.form-field input:focus,.form-field textarea:focus{outline:none;border-color:var(--instrument)}
.form-field textarea{resize:vertical;min-height:92px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.btn{
  appearance:none;border:0;cursor:pointer;font-family:var(--sans);font-weight:700;font-size:1rem;
  padding:15px 26px;border-radius:12px;background:var(--instrument);color:#fff;
  display:inline-flex;align-items:center;gap:10px;text-decoration:none;
  transition:filter .2s ease, transform .1s ease;
}
.btn:hover{filter:brightness(1.08)}
.btn:active{transform:translateY(1px)}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.btn .rdr{width:16px;height:16px;flex:0 0 auto}
.form-msg{margin-top:14px;font-size:.9rem;min-height:1.2em}
.form-msg.err{color:#c0392b}
.form-msg.ok{color:var(--instrument)}
@media (prefers-color-scheme:dark){.form-msg.err{color:#ff8a7a}}

/* how to choose */
.howto{margin:26px 0 10px;background:var(--paper-2);border:1px solid var(--hair);border-radius:var(--radius);padding:clamp(22px,3vw,34px)}
.howto h3{font-family:var(--display);font-weight:800;margin:0 0 14px;font-size:1.15rem}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;counter-reset:s}
.step{position:relative;padding-left:40px}
.step::before{counter-increment:s;content:counter(s);position:absolute;left:0;top:-2px;width:27px;height:27px;border-radius:8px;background:var(--instrument);color:#fff;font-family:var(--mono);font-size:.8rem;display:flex;align-items:center;justify-content:center;font-weight:700}
.step h4{margin:0 0 4px;font-size:.95rem}
.step p{margin:0;color:var(--mid);font-size:.86rem;line-height:1.45}

/* footer */
footer{border-top:1px solid var(--hair);margin-top:40px}
footer .wrap{padding-top:26px;padding-bottom:34px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
footer a{color:var(--instrument);text-decoration:none;font-weight:600}
footer a:hover{text-decoration:underline}
.foot-note{font-size:.8rem;color:var(--mid);max-width:52ch}

/* ===== logo concept page ===== */
.your-choices{display:flex;flex-wrap:wrap;gap:14px 34px;align-items:center;padding:18px clamp(18px,3vw,26px);margin-top:26px;background:var(--card);border:1px solid var(--hair);border-radius:14px;box-shadow:var(--shadow)}
.yc{display:flex;align-items:center;gap:11px;min-width:0}
.yc-k{font-family:var(--mono);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:var(--mid)}
.yc .chip{width:20px;height:20px;border-radius:6px;flex:0 0 auto;border:1px solid var(--hair)}
.yc-hex{font-family:var(--mono);font-size:.74rem;color:var(--ink-soft)}
.yc-font{font-family:var(--f-plex);font-weight:700;font-size:1.05rem;color:var(--ink)}

.logo-opt{background:var(--card);border:1px solid var(--hair);border-radius:var(--radius);box-shadow:var(--shadow);padding:clamp(22px,3vw,34px);margin-bottom:30px;transition:border-color .2s ease,box-shadow .2s ease;scroll-margin-top:20px}
.logo-opt.is-selected{border-color:var(--pg-forest);box-shadow:0 0 0 2px var(--pg-forest),var(--shadow)}
.opt-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px;margin-bottom:22px}
.opt-badge{font-family:var(--mono);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--pg-orange)}
.opt-name{font-family:var(--display);font-weight:800;font-size:1.4rem;letter-spacing:-.01em;margin:0}
.opt-desc{color:var(--mid);font-size:.9rem;margin:0;flex:1 1 100%;max-width:74ch;line-height:1.5}

.opt-lockups{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}
@media (max-width:640px){.opt-lockups{grid-template-columns:1fr}}
.lk{display:flex;align-items:center;gap:20px;padding:26px 24px;border-radius:14px;background:#fff;border:1px solid rgba(20,30,25,.10);min-width:0}
.lk.rev{background:var(--pg-forest);border-color:transparent}
.lk .mk{width:66px;height:66px;flex:0 0 auto}
.lk-word{display:flex;flex-direction:column;line-height:.92;font-family:var(--f-plex);min-width:0}
.lk-pre{font-weight:700;font-size:clamp(1.7rem,4.4vw,2.5rem);letter-spacing:-.02em;text-transform:uppercase;color:var(--pg-forest)}
.lk-gpr{font-weight:600;font-size:1rem;letter-spacing:.3em;color:var(--pg-orange);margin-top:6px;padding-left:3px}
.lk.rev .lk-pre{color:#fff}

.apps{border-top:1px solid var(--hair);padding-top:20px}
.apps-lbl{font-family:var(--mono);font-size:.64rem;letter-spacing:.15em;text-transform:uppercase;color:var(--mid);margin-bottom:14px}
.apps-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.app{display:flex;flex-direction:column;align-items:center;gap:9px}
.app-canvas{position:relative;width:100%;aspect-ratio:4/3;background:var(--paper-2);border:1px solid var(--hair);border-radius:12px;overflow:hidden;display:flex;align-items:center;justify-content:center}
.app-canvas .base{width:92%;height:92%;display:block}
.app > span{font-size:.72rem;color:var(--mid);letter-spacing:.02em}

.logo-opt .choose{margin-top:22px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.logo-opt .btn-select{color:var(--pg-forest);border-color:var(--pg-forest)}
.logo-opt .btn-select:hover{background:color-mix(in srgb,var(--pg-forest) 10%,transparent)}
.logo-opt .btn-select.is-on{background:var(--pg-forest);color:#fff}
.send .btn{background:var(--pg-forest)}
.pick .pk-dot{background:var(--pk-color,transparent)}

@media (prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important}
}
