
/* Concept: the docket rail. Felt-green bands, brass rail, docket-paper surfaces, menu-card leaders for prices. Left aligned. */
:root{
  --felt:#14372d; --felt-2:#1c4a3d; --brass:#b8862f; --brass-soft:#e2c27e;
  --paper:#f7f7f2; --surface:#ffffff; --ink:#16201c; --mute:#5c6a64; --line:#dfe3dc;
  --on-felt:#eef3ef; --on-felt-mute:#a9bfb6;
  --display:"Gloock",Georgia,"Times New Roman",serif;
  --body:"Hanken Grotesk",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --print:"Courier Prime","Courier New",ui-monospace,monospace;
  --step-0:1rem; --step-1:1.25rem; --step-2:1.6rem; --step-3:2.2rem; --step-4:clamp(2.6rem,6.2vw,4.6rem);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:var(--step-0);line-height:1.6}
a{color:var(--felt-2)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
.gutter{padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
.wrap{max-width:1120px;margin:0 auto}
h1,h2,h3{font-family:var(--display);font-weight:400;margin:0;line-height:1.05;text-wrap:balance;letter-spacing:-.005em}
h1{font-size:var(--step-4)} h2{font-size:var(--step-3)} h3{font-size:var(--step-1);line-height:1.2}
p{margin:0;max-width:64ch}
.lede{font-size:var(--step-1);line-height:1.5;color:var(--mute);max-width:56ch}
.mute{color:var(--mute)}

/* header */
.site-head{background:var(--felt);color:var(--on-felt);position:sticky;top:0;z-index:30}
.site-head .wrap{display:flex;align-items:center;gap:20px;padding-block:14px;flex-wrap:wrap}
.mark{font-family:var(--display);font-size:1.55rem;color:var(--on-felt);text-decoration:none;margin-right:auto;line-height:1;display:inline-flex;align-items:center;gap:10px}
.mark img{display:block;border-radius:6px}
.mark span{color:var(--brass-soft)}
.site-head nav{display:flex;gap:4px;flex-wrap:wrap}
.site-head nav a{color:var(--on-felt-mute);text-decoration:none;font-size:.95rem;padding:6px 10px;border-radius:4px}
.site-head nav a:hover,.site-head nav a[aria-current="page"]{color:var(--on-felt);background:var(--felt-2)}

/* buttons */
.btn{display:inline-block;font:600 1rem var(--body);text-decoration:none;border:0;cursor:pointer;padding:13px 20px;border-radius:4px;background:var(--brass);color:#1d1406}
.btn:hover{background:var(--brass-soft)}
.btn.line{background:transparent;color:inherit;box-shadow:inset 0 0 0 1.5px currentColor}
.btn.line:hover{background:rgba(255,255,255,.08)}

/* hero */
.hero{background:var(--felt);color:var(--on-felt);padding-block:56px 72px;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:48px;align-items:start}
.hero h1{color:#fff}
.hero .lede{color:var(--on-felt-mute);margin-top:22px}
.hero .actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.rail{position:relative;padding-top:26px}
.rail::before{content:"";position:absolute;top:10px;left:-8px;right:-8px;height:10px;border-radius:5px;background:linear-gradient(var(--brass-soft),var(--brass));box-shadow:0 2px 0 rgba(0,0,0,.25)}
.dockets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.docket{background:var(--paper);color:var(--ink);font-family:var(--print);font-size:.86rem;line-height:1.45;padding:18px 14px 26px;text-decoration:none;display:flex;flex-direction:column;gap:8px;min-width:0;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 8px),92% 100%,84% calc(100% - 8px),76% 100%,68% calc(100% - 8px),60% 100%,52% calc(100% - 8px),44% 100%,36% calc(100% - 8px),28% 100%,20% calc(100% - 8px),12% 100%,4% calc(100% - 8px),0 100%);
  transform-origin:top center;animation:hang .7s cubic-bezier(.2,.9,.3,1.2) both}
.docket:nth-child(1){transform:rotate(-2deg)} .docket:nth-child(2){transform:rotate(1.2deg);animation-delay:.12s;margin-top:10px} .docket:nth-child(3){transform:rotate(-.8deg);animation-delay:.24s}
.docket b{font-weight:700;font-size:1rem;border-bottom:1px dashed #9aa59f;padding-bottom:6px}
.docket span{color:#4a5550}
.docket:hover b{color:var(--felt-2)}
@keyframes hang{from{opacity:0;translate:0 -28px}to{opacity:1;translate:0 0}}
.rail-note{margin-top:22px;color:var(--on-felt-mute);font-size:.95rem}

/* sections */
.band{padding-block:72px}
.band.tint{background:#eef0ea}
.band.felt{background:var(--felt);color:var(--on-felt)} .band.felt .lede,.band.felt .mute{color:var(--on-felt-mute)} .band.felt h2{color:#fff}
.head{display:flex;flex-direction:column;gap:12px;margin-bottom:36px}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:start}

/* feature list: rule-separated rows, not cards */
.rows{border-top:1px solid var(--line)}
.rowlink{display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr) auto;gap:24px;align-items:baseline;padding:22px 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}
.rowlink h3{font-size:1.45rem}
.rowlink p{color:var(--mute)}
.rowlink .go{color:var(--felt-2);font-weight:600;white-space:nowrap}
.rowlink:hover h3{color:var(--felt-2)}
.soon{font-size:.85rem;color:#7a5a17;background:#f4e8cc;border-radius:3px;padding:2px 8px;white-space:nowrap}

/* menu card prices with dot leaders */
.menu{background:var(--surface);border:1px solid var(--line);padding:30px 30px 24px;max-width:640px}
.menu h3{font-size:1.6rem;margin-bottom:6px}
.menu .sub{color:var(--mute);font-size:.95rem;margin-bottom:18px}
.item{display:flex;align-items:baseline;gap:10px;padding:10px 0}
.item .name{font-weight:600}
.item .dots{flex:1;border-bottom:2px dotted #b9c1bb;transform:translateY(-4px);min-width:20px}
.item .price{font-family:var(--display);font-size:1.25rem;white-space:nowrap}
.item + .desc{color:var(--mute);font-size:.95rem;margin:-6px 0 6px;max-width:48ch}

/* steps (real sequence) */
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;counter-reset:s}
.step{border-top:3px solid var(--brass);padding-top:14px;counter-increment:s}
.step h3::before{content:counter(s) ". ";color:var(--brass)}
.step p{color:var(--mute);font-size:.97rem;margin-top:6px}
.band.felt .step p{color:var(--on-felt-mute)}

/* studio panels */
.panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.panel{background:var(--surface);border:1px solid var(--line);padding:30px;display:flex;flex-direction:column;gap:14px}
.panel ul{margin:0;padding-left:20px;color:var(--mute);display:flex;flex-direction:column;gap:6px}

/* table */
.tablewrap{overflow-x:auto;border:1px solid var(--line);background:var(--surface)}
table{border-collapse:collapse;width:100%;min-width:680px;font-size:.97rem}
th,td{padding:14px 16px;text-align:left;vertical-align:top;border-top:1px solid var(--line)}
thead th{background:var(--felt);color:var(--on-felt);border-top:0;font-weight:600}
tbody th{font-weight:600;width:170px}

/* tools */
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-top:22px}
.kpi{background:var(--surface);padding:16px}
.kpi span{display:block;font-size:.88rem;color:var(--mute)}
.kpi b{font-family:var(--display);font-weight:400;font-size:1.7rem;font-variant-numeric:tabular-nums}
.verdict{margin-top:14px;padding:14px 16px;background:#f4e8cc;color:#4a3608;font-weight:500;max-width:none}

/* news */
.story{display:grid;grid-template-columns:minmax(0,200px) minmax(0,1fr);gap:28px;padding:28px 0;border-bottom:1px solid var(--line)}
.story .when{color:var(--mute);font-size:.95rem}
.story h3{font-size:1.6rem;margin-bottom:10px}
.story p + p{margin-top:10px}
.story .src{margin-top:12px;font-size:.95rem}

/* forms */
form{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}
label{display:flex;flex-direction:column;gap:6px;font-size:.92rem;color:var(--mute);flex:1 1 220px;min-width:0}
.band.felt label{color:var(--on-felt-mute)}
input,select,textarea{font:1rem var(--body);color:var(--ink);background:var(--surface);border:1px solid #c9d0ca;border-radius:4px;padding:12px 13px;width:100%}
textarea{min-height:110px}
.wide{flex-basis:100%}
.consent{flex-basis:100%;flex-direction:row;align-items:flex-start;gap:10px}
.consent input{width:auto;margin-top:4px}
.note{font-size:.9rem;color:var(--mute)}

/* shop */
.shelf{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.product{background:var(--surface);border:1px solid var(--line);display:flex;flex-direction:column;min-width:0}
.product img{display:block;width:100%;height:auto;border-bottom:1px solid var(--line);max-width:100%}
.pbody{padding:20px;display:flex;flex-direction:column;gap:10px;flex:1}
.pbody .btn{margin-top:auto;align-self:flex-start}
.ptop{display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.ptop .price{font-family:var(--display);font-size:1.4rem;white-space:nowrap}
.pbody p{color:var(--mute);font-size:.97rem}
@media (max-width:900px){.shelf{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.shelf{grid-template-columns:minmax(0,1fr)}}
/* jobs board */
.jobs-search{background:var(--felt);color:var(--on-felt);padding-block:40px 28px}
.jobs-search h1{color:#fff;font-size:var(--step-3);margin-bottom:20px}
.searchbar{background:var(--surface);padding:10px;border-radius:6px;display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1.2fr) minmax(0,1fr) auto;gap:10px;align-items:end}
.searchbar label{color:var(--mute);flex:none}
.jobs-meta{margin-top:12px;color:var(--on-felt-mute);min-height:1.4em}
.jobs-main{padding-block:28px 56px}
.jobs-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:24px;align-items:start}
.joblist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.joblist:empty{display:none}
.joblist li{background:var(--surface);border:1px solid var(--line);padding:16px 18px;cursor:pointer;display:flex;flex-direction:column;gap:2px}
.joblist li.on{border-color:var(--felt-2);box-shadow:inset 4px 0 0 var(--brass)}
.joblist li:hover h3{color:var(--felt-2)}
.joblist h3{font-family:var(--body);font-weight:700;font-size:1.08rem}
.jl-tags,.jd-facts{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.jl-tags span,.jd-facts span{background:#eef0ea;border-radius:3px;padding:2px 8px;font-size:.88rem;color:var(--ink)}
.jobdetail{background:var(--surface);border:1px solid var(--line);padding:28px;position:sticky;top:84px;display:flex;flex-direction:column;gap:14px;min-width:0}
.jobdetail .btn{align-self:flex-start}
.jd-venue{color:var(--mute)}
.jd-desc{border-top:1px solid var(--line);padding-top:16px;line-height:1.7;max-width:70ch}
.joblist:empty + .jobdetail{grid-column:1 / -1}
@media (max-width:900px){.searchbar{grid-template-columns:minmax(0,1fr)}.jobs-layout{grid-template-columns:minmax(0,1fr)}.jobdetail{position:static}}
/* live feed */
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.chip{font:500 .92rem var(--body);background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:7px 14px;cursor:pointer}
.chip[aria-pressed="true"]{background:var(--felt);color:var(--on-felt);border-color:var(--felt)}
.feed{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.feeditem{display:flex;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid var(--line);align-items:baseline}
.feeditem a{color:var(--ink);text-decoration:none;font-weight:600;max-width:70ch}
.feeditem a:hover{color:var(--felt-2);text-decoration:underline}
.feeditem span{color:var(--mute);font-size:.9rem;white-space:nowrap}
@media (max-width:620px){.feeditem{flex-direction:column;gap:4px}.feeditem span{white-space:normal}}
/* prose pages */
.prose{max-width:70ch;display:flex;flex-direction:column;gap:14px}
.prose strong{color:var(--ink)}

/* footer */
.site-foot{background:var(--felt);color:var(--on-felt-mute);padding-block:48px;font-size:.95rem}
.site-foot .wrap{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);gap:32px}
.site-foot a{color:var(--on-felt);text-decoration:none} .site-foot a:hover{text-decoration:underline}
.site-foot ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.site-foot .mark{font-size:1.8rem;display:inline-block;margin-bottom:10px}

@media (max-width:900px){
  .hero .wrap,.split,.panels{grid-template-columns:minmax(0,1fr)}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .site-foot .wrap{grid-template-columns:1fr}
}
@media (max-width:620px){
  .site-head nav{width:100%;overflow-x:auto;flex-wrap:nowrap}.site-head nav a{white-space:nowrap}
  .dockets{grid-template-columns:minmax(0,1fr)}
  .docket:nth-child(2){margin-top:0}
  h1{overflow-wrap:break-word}
  .rowlink{grid-template-columns:1fr;gap:6px}
  .story{grid-template-columns:1fr;gap:8px}
  .steps{grid-template-columns:1fr}
  .band{padding-block:52px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.docket{animation:none}}
