/* The Polycrafted Art Studio, design system "True Scale"
   Dark field, geometric display, mono specification labels, one red accent. */

@font-face{font-family:'Syne';font-weight:400;font-display:swap;src:url('../fonts/syne-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Syne';font-weight:500;font-display:swap;src:url('../fonts/syne-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'Syne';font-weight:600;font-display:swap;src:url('../fonts/syne-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-weight:400;font-display:swap;src:url('../fonts/ibm-plex-mono-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-weight:500;font-display:swap;src:url('../fonts/ibm-plex-mono-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'Instrument Serif';font-weight:400;font-style:normal;font-display:swap;src:url('../fonts/instrument-serif-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Instrument Serif';font-weight:400;font-style:italic;font-display:swap;src:url('../fonts/instrument-serif-latin-400-italic.woff2') format('woff2')}

:root{
  --bg:#121315; --panel:#191A1D; --panel-2:#0D0E10;
  --ink:#F4F1EA; --ink-2:#8F9096; --ink-3:#5C5D63; --line:#2C2D31;
  --accent:#D8281E;
  --display:'Syne',Helvetica,Arial,sans-serif;
  --mono:'IBM Plex Mono',Menlo,Consolas,monospace;
  --serif:'Instrument Serif',Georgia,'Times New Roman',serif;
  --gutter:clamp(20px,4vw,56px);
  --max:1600px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg);color-scheme:dark;scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--display);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
::selection{background:var(--accent);color:#fff}

/* type */
.mono{font-family:var(--mono);font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2)}
.mono .accent{color:var(--accent)}
h1,.h1{font-weight:500;font-size:clamp(44px,7vw,96px);line-height:.95;letter-spacing:-.03em}
h2,.h2{font-weight:500;font-size:clamp(32px,4.2vw,56px);line-height:1;letter-spacing:-.025em}
h3,.h3{font-weight:500;font-size:clamp(22px,2.2vw,28px);line-height:1.15;letter-spacing:-.015em}
h1 i,h2 i,.serif-i{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:0}
.lede{font-size:clamp(17px,1.5vw,21px);line-height:1.55;color:var(--ink-2);max-width:560px}
.lede b,p b{color:var(--ink);font-weight:500}
p{color:var(--ink-2);max-width:60ch}
.prose p+p{margin-top:1em}
.small{font-size:14px}

/* layout */
.wrap{max-width:var(--max);margin:0 auto;padding-inline:var(--gutter)}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--gutter)}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gutter)}
.section{padding-block:clamp(64px,8vw,120px)}
.section-tight{padding-block:clamp(40px,5vw,72px)}
.rule{border-top:1px solid var(--line)}
.rule-b{border-bottom:1px solid var(--line)}
.eyebrow{display:block;margin-bottom:20px}
.stack>*+*{margin-top:20px}
@media(max-width:820px){.grid-2,.grid-3{grid-template-columns:1fr}}

/* nav */
.nav{position:sticky;top:0;z-index:50;background:rgba(18,19,21,.88);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav .wrap{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:76px}
.nav .brand{font-weight:600;font-size:14px;letter-spacing:.3em;text-transform:uppercase;white-space:nowrap}
.nav ul{display:flex;gap:32px;font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}
.nav ul a{padding:8px 0;border-bottom:1px solid transparent;transition:color .2s,border-color .2s}
.nav ul a:hover,.nav ul a[aria-current=page]{color:var(--ink);border-color:var(--ink)}
.nav .right{text-align:right}
.nav-toggle{display:none;justify-self:end;font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.06em}
@media(max-width:980px){
  .nav .wrap{grid-template-columns:1fr auto auto;gap:16px}
  .nav ul{display:none;position:absolute;left:0;right:0;top:76px;flex-direction:column;gap:0;background:var(--bg);border-bottom:1px solid var(--line);padding:8px var(--gutter) 20px}
  .nav ul a{display:block;padding:14px 0;border-bottom:1px solid var(--line)}
  .nav.open ul{display:flex}
  .nav-toggle{display:block}
  .nav .right .btn{display:none}
}

/* buttons */
.btn{display:inline-block;background:var(--ink);color:var(--bg);padding:16px 24px;font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--ink);transition:background .2s,color .2s}
.btn:hover{background:transparent;color:var(--ink)}
.btn.ghost{background:transparent;color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--bg)}
.btn.sm{padding:12px 18px}
.btn-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}

/* tags */
.tag{display:inline-block;font-family:var(--mono);font-size:12px;background:rgba(18,19,21,.85);padding:10px 14px;backdrop-filter:blur(6px);color:var(--ink);line-height:1.6;letter-spacing:.02em}
.tag .accent{color:var(--accent)}

/* hero split */
.hero{display:grid;grid-template-columns:1fr 1fr;min-height:calc(100vh - 76px);border-bottom:1px solid var(--line)}
.hero .txt{padding:clamp(48px,7vw,96px) var(--gutter) clamp(40px,5vw,64px);display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid var(--line);gap:40px}
.hero .txt h1{margin-top:28px}
.hero .txt .lede{margin-top:36px}
.hero .img{position:relative;overflow:hidden;min-height:60vh}
.hero .img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero .dim{position:absolute;left:var(--gutter);right:var(--gutter);bottom:36px;display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}
@media(max-width:820px){.hero{grid-template-columns:1fr}.hero .txt{border-right:0;border-bottom:1px solid var(--line)}.hero .img{min-height:70vw}}

/* ticker */
.ticker{overflow:hidden;border-bottom:1px solid var(--line);padding:18px 0}
.ticker-track{display:flex;gap:64px;white-space:nowrap;width:max-content;animation:tick 40s linear infinite}
.ticker span{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}
.ticker span::before{content:"";display:inline-block;width:6px;height:6px;background:var(--accent);margin-right:14px;vertical-align:middle}
@keyframes tick{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.ticker-track{animation:none}}

/* split panels */
.split{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line)}
.split>div{padding:clamp(40px,5vw,64px) var(--gutter)}
.split>div:first-child{border-right:1px solid var(--line)}
.split h2{margin:20px 0 28px}
.split p{font-size:17px;line-height:1.65}
@media(max-width:820px){.split{grid-template-columns:1fr}.split>div:first-child{border-right:0;border-bottom:1px solid var(--line)}}

/* compare */
.compare{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border-bottom:1px solid var(--line)}
.compare figure{background:var(--bg);position:relative;margin:0}
.compare img{width:100%;aspect-ratio:4/5;object-fit:cover}
.compare figcaption{position:absolute;top:20px;left:20px}
.note{padding:20px var(--gutter);font-family:var(--mono);font-size:12px;color:var(--ink-2);text-transform:uppercase;letter-spacing:.05em;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;border-bottom:1px solid var(--line)}
@media(max-width:820px){.compare{grid-template-columns:1fr}}

/* index list */
.index-row{display:grid;grid-template-columns:90px 1.2fr 1fr 1fr 140px;gap:24px;padding:22px 0;border-top:1px solid var(--line);align-items:center;font-size:15px;transition:background .2s}
.index-row:last-child{border-bottom:1px solid var(--line)}
.index-row:hover{background:var(--panel)}
.index-row .n,.index-row .s{font-family:var(--mono);color:var(--ink-2);font-size:12px;letter-spacing:.03em}
.index-row .t{font-weight:500;font-size:18px;letter-spacing:-.01em}
.index-row .m{color:var(--ink-2)}
.index-row img{width:140px;height:96px;object-fit:cover;justify-self:end}
@media(max-width:820px){.index-row{grid-template-columns:60px 1fr 100px;grid-template-areas:"n t img" "n m img" "n s img"}.index-row .n{grid-area:n}.index-row .t{grid-area:t}.index-row .m{grid-area:m}.index-row .s{grid-area:s}.index-row img{grid-area:img;width:100px;height:72px}}

/* big image */
.big{position:relative;height:min(90vh,900px);overflow:hidden;border-top:1px solid var(--line)}
.big img{width:100%;height:100%;object-fit:cover}
.big .tag{position:absolute;left:var(--gutter);bottom:40px}

/* work grid */
.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line)}
.work-card{background:var(--bg);position:relative;display:block}
.work-card img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:opacity .3s}
.work-card:hover img{opacity:.85}
.work-card .cap{padding:18px var(--gutter) 28px;display:grid;grid-template-columns:1fr auto;gap:16px;align-items:start}
.work-card .cap b{display:block;font-weight:500;font-size:18px;letter-spacing:-.01em;margin-bottom:4px}
.work-card .cap span{font-family:var(--mono);font-size:12px;color:var(--ink-2);letter-spacing:.03em}
.work-card.wide{grid-column:1/-1}
.work-card.wide img{aspect-ratio:16/9}
@media(max-width:820px){.work-grid{grid-template-columns:1fr}}

/* tables */
.table{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:13px}
.table td,.table th{padding:16px 0;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.table th{color:var(--ink-2);font-weight:400;text-transform:uppercase;font-size:11px;letter-spacing:.06em}
.table td:last-child,.table th:last-child{text-align:right}
.table.price td:nth-child(2){color:var(--ink-2)}
.table.price td:last-child{color:var(--ink);font-weight:500}

/* steps */
.steps{counter-reset:s;border-top:1px solid var(--line)}
.steps li{display:grid;grid-template-columns:80px 1fr;gap:24px;padding:28px 0;border-bottom:1px solid var(--line)}
.steps li::before{counter-increment:s;content:"0" counter(s);font-family:var(--mono);font-size:12px;color:var(--accent);padding-top:6px}
.steps li b{display:block;font-weight:500;font-size:20px;letter-spacing:-.01em;margin-bottom:8px}
.steps li p{font-size:16px}

/* panels */
.panel{background:var(--panel);border:1px solid var(--line);padding:clamp(24px,3vw,40px)}
.panel-dark{background:var(--panel-2)}

/* forms */
.form{display:grid;gap:18px}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field label{display:block;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);margin-bottom:8px}
.field input,.field select,.field textarea{width:100%;background:var(--panel-2);border:1px solid var(--line);color:var(--ink);padding:14px 16px;font:inherit;font-size:15px;border-radius:0;outline:none;transition:border-color .2s}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--ink)}
.field select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink-2) 50%),linear-gradient(135deg,var(--ink-2) 50%,transparent 50%);background-position:calc(100% - 22px) 50%,calc(100% - 16px) 50%;background-size:6px 6px;background-repeat:no-repeat}
.field textarea{min-height:140px;resize:vertical}
.field input[type=file]{padding:10px}
.field .hint{font-family:var(--mono);font-size:11px;color:var(--ink-3);margin-top:6px;letter-spacing:.03em}
.form-note{font-family:var(--mono);font-size:11px;color:var(--ink-3);letter-spacing:.03em}
.honey{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
.form-status{font-family:var(--mono);font-size:12px;letter-spacing:.04em;margin-top:8px;color:var(--ink-2)}
.form-status.ok{color:var(--ink)}
.form-status.err{color:var(--accent)}
@media(max-width:600px){.form .row{grid-template-columns:1fr}}

/* faq */
.faq details{border-top:1px solid var(--line);padding:22px 0}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:24px;font-weight:500;font-size:19px;letter-spacing:-.01em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--mono);color:var(--ink-2)}
.faq details[open] summary::after{content:"-"}
.faq details p{margin-top:14px;max-width:70ch}

/* footer */
footer{border-top:1px solid var(--line);padding:48px 0 40px}
footer .wrap{display:grid;grid-template-columns:1fr 1fr 1fr;gap:32px;align-items:start}
footer .brand{font-weight:600;letter-spacing:.3em;text-transform:uppercase;font-size:13px}
footer .mono a:hover{color:var(--ink)}
footer .cols{display:grid;gap:10px}
footer .legal{margin-top:40px;padding-top:20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
@media(max-width:820px){footer .wrap{grid-template-columns:1fr}}

/* page header */
.page-head{padding:clamp(48px,7vw,96px) 0 clamp(32px,4vw,56px);border-bottom:1px solid var(--line)}
.page-head h1{margin-top:24px;max-width:14ch}
.page-head .lede{margin-top:28px}

/* misc */
.accent{color:var(--accent)}
.muted{color:var(--ink-2)}
.center{text-align:center}
.reveal{opacity:0;transform:translateY(12px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
