/* Degen Labs site v3.0
   Layout: a drawing-sheet site. Hairline-ruled sections, mono labels like a title block,
   cobalt as the only loud colour, square corners throughout. Same look as website v1.1. */
:root{
  --paper:#EEF0F3; --panel:#F8F9FB; --ink:#0F1419; --ink-2:#47515E; --rule:#C3CAD3;
  --cobalt:#2342F2; --on-cobalt:#FFFFFF;
  --warn-bg:#FBE9C8; --warn-fg:#4A3200; --warn-line:#B3811F;
  --f-display:"Archivo","Helvetica Neue",Arial,sans-serif;
  --f-body:"Instrument Sans","Helvetica Neue",Arial,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root{
    --paper:#0E1218; --panel:#151A22; --ink:#E9ECF1; --ink-2:#9AA4B2; --rule:#2A323D;
    --cobalt:#8397FF; --on-cobalt:#0B1020;
    --warn-bg:#3A3310; --warn-fg:#F2DE85; --warn-line:#7E6B14; color-scheme:dark;
  }
}

*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:88px}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1rem/1.6 var(--f-body);-webkit-font-smoothing:antialiased}
img,video,iframe{max-width:100%}
a{color:inherit}
:focus-visible{outline:2px solid var(--cobalt);outline-offset:3px}
h1,h2,h3,p,dl,dd,ol,ul,figure{margin:0}
ul,ol{padding:0;list-style:none}
.skip{position:absolute;left:-9999px}
.skip:focus{left:16px;top:16px;z-index:50;background:var(--paper);padding:8px 12px}

.wrap{width:100%;max-width:1240px;margin-inline:auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.label{font:500 .75rem/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border:1.5px solid var(--ink);border-radius:2px;background:transparent;color:var(--ink);font:600 .9rem/1 var(--f-body);letter-spacing:.01em;text-decoration:none;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.btn-solid{background:var(--cobalt);border-color:var(--cobalt);color:var(--on-cobalt)}
.btn-solid:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.btn-line:hover{background:var(--ink);color:var(--paper)}
.btn[disabled]{opacity:.6;cursor:progress}

/* header (the wrapper is sticky, because Shopify wraps every section in a div) */
#shopify-section-header{position:sticky;top:0;z-index:20}
.site-head{background:var(--paper);border-bottom:1px solid var(--rule)}
.bar{display:flex;align-items:center;gap:20px;padding-block:12px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;font:800 1.05rem/1 var(--f-display);font-stretch:125%;letter-spacing:.03em;text-transform:uppercase;text-decoration:none;color:var(--ink)}
.brand i{display:block;width:14px;height:14px;background:var(--cobalt)}
.links{display:flex;gap:28px;margin-left:auto}
.links a{font-weight:500;font-size:.95rem;color:var(--ink-2);text-decoration:none;padding-block:6px;border-bottom:2px solid transparent}
.links a:hover{color:var(--ink);border-bottom-color:var(--cobalt)}
.menu-btn{display:none;padding:10px 14px;border:1.5px solid var(--ink);border-radius:2px;background:transparent;color:var(--ink);font:500 .8rem/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}

/* hero */
.hero{padding-top:clamp(40px,7vw,88px);padding-bottom:clamp(48px,7vw,96px)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,5vw,72px);align-items:end}
h1{font:800 clamp(3.1rem,9vw,7.25rem)/.9 var(--f-display);font-stretch:125%;letter-spacing:-.035em;margin:20px 0 28px}
.lede{max-width:52ch;font-size:1.15rem;color:var(--ink-2)}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.sheet{border:1.5px solid var(--ink);background:var(--panel)}
.sheet-view{position:relative;aspect-ratio:4/3;display:grid;place-items:center;border-bottom:1.5px solid var(--ink);
  background-image:linear-gradient(var(--rule) 1px,transparent 1px),linear-gradient(90deg,var(--rule) 1px,transparent 1px);background-size:28px 28px}
.reg{position:absolute;width:14px;height:14px;border:0 solid var(--ink)}
.reg.tl{top:10px;left:10px;border-top-width:2px;border-left-width:2px}
.reg.tr{top:10px;right:10px;border-top-width:2px;border-right-width:2px}
.reg.bl{bottom:10px;left:10px;border-bottom-width:2px;border-left-width:2px}
.reg.br{bottom:10px;right:10px;border-bottom-width:2px;border-right-width:2px}
.sheet-note{padding:9px 14px;border:1px solid var(--ink);background:var(--panel);font:500 .78rem/1.2 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;text-align:center}
.titleblock{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--ink)}
.titleblock div{background:var(--panel);padding:10px 12px;min-width:0}
.titleblock dt{font:500 .62rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);margin-bottom:6px}
.titleblock dd{font:500 .85rem/1.3 var(--f-mono)}

/* sections */
.sec{padding-block:clamp(56px,8vw,112px);border-top:1px solid var(--rule)}
.sec--page{border-top:0;padding-block:clamp(40px,6vw,80px)}
.sec-head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(20px,4vw,64px);margin-bottom:clamp(32px,5vw,56px);align-items:end}
h2,.page-title{font:800 clamp(2rem,4.6vw,3.5rem)/1.02 var(--f-display);font-stretch:112%;letter-spacing:-.02em;margin:14px 0 0;text-wrap:balance}
.sec-head p{max-width:58ch;color:var(--ink-2);font-size:1.075rem}
h3{font:700 1.15rem/1.25 var(--f-display);font-stretch:100%;letter-spacing:-.005em}

/* cards and grids */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr));gap:20px}
.card{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--rule);transition:border-color .2s}
.card:hover{border-color:var(--cobalt)}
.card-link{display:flex;flex-direction:column;flex:1;text-decoration:none;color:inherit}
.shot{aspect-ratio:4/3;display:grid;place-items:center;text-align:center;padding:12px;border-bottom:1px solid var(--rule);overflow:hidden;
  background-image:linear-gradient(var(--rule) 1px,transparent 1px),linear-gradient(90deg,var(--rule) 1px,transparent 1px);background-size:24px 24px}
.shot img{display:block;max-width:none;width:calc(100% + 24px);height:calc(100% + 24px);margin:-12px;object-fit:cover}
.cat-name{padding:8px 16px;background:var(--panel);border:1px solid var(--ink);font:800 clamp(1.3rem,2.4vw,1.8rem)/1 var(--f-display);font-stretch:118%;letter-spacing:-.01em}
.card-body{display:flex;flex-direction:column;gap:10px;padding:16px 18px 20px;flex:1;min-width:0}
.card .cat{font:500 .7rem/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--cobalt)}
.card p{color:var(--ink-2);font-size:.98rem}
.card-actions{padding:0 18px 18px}
.card-actions .btn{width:100%}
.price{font:500 1rem/1.3 var(--f-mono);color:var(--ink)}
.price s{color:var(--ink-2);margin-left:6px}
.price--request{color:var(--ink-2)}
.note{margin-top:28px;display:flex;flex-wrap:wrap;gap:14px 20px;align-items:center;color:var(--ink-2);font-size:.98rem}
.empty{padding:28px;border:1.5px dashed var(--rule);background:var(--panel);color:var(--ink-2);display:grid;gap:16px;justify-items:start}
.pagination{margin-top:32px;display:flex;flex-wrap:wrap;gap:8px;font:500 .85rem/1 var(--f-mono)}
.pagination span{display:inline-block}
.pagination a,.pagination .current{display:inline-block;padding:10px 14px;border:1px solid var(--ink);text-decoration:none}
.pagination .current{background:var(--ink);color:var(--paper)}
.pagination a:hover{background:var(--ink);color:var(--paper)}

/* split layouts */
.split{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(28px,4vw,64px);align-items:start}
.offers{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px 32px}
.offers li{padding-top:14px;border-top:1.5px solid var(--ink);display:flex;flex-direction:column;gap:8px}
.offers p,.caps p{color:var(--ink-2);font-size:.98rem}
.panel{background:var(--panel);border:1.5px solid var(--ink);padding:22px;min-width:0}
.panel h3{margin-bottom:14px}
.steps{counter-reset:s;margin-bottom:18px}
.steps li{counter-increment:s;display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;padding:12px 0;border-top:1px solid var(--rule)}
.steps li::before{content:counter(s,decimal-leading-zero);font:500 .8rem/1.6 var(--f-mono);color:var(--cobalt)}
.steps b{display:block;font-weight:600}
.steps span{color:var(--ink-2);font-size:.95rem}
.panel .fine-print{padding-top:12px;margin-bottom:22px;border-top:1px solid var(--rule);color:var(--ink-2);font-size:.95rem}

/* manufacturing */
.caps{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px 28px;margin-bottom:clamp(36px,5vw,56px)}
.caps li{padding-top:14px;border-top:1.5px solid var(--ink);display:flex;flex-direction:column;gap:6px}
.stages{display:grid;border:1.5px solid var(--ink);border-bottom:0}
.stage{padding:16px 8px;border:0;border-right:1px solid var(--ink);background:var(--panel);color:var(--ink);font:500 .85rem/1.2 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;text-align:center;cursor:pointer}
.stage:last-child{border-right:0}
.stage:hover{background:var(--rule)}
.stage[aria-selected="true"]{background:var(--cobalt);color:var(--on-cobalt)}
.stage-panel{border:1.5px solid var(--ink);background:var(--panel);padding:22px;display:grid;gap:10px}
.stage-panel p{max-width:62ch;color:var(--ink-2)}
.who{display:flex;flex-wrap:wrap;gap:10px;margin-top:clamp(28px,4vw,44px)}
.who li{padding:10px 14px;border:1px solid var(--rule);background:var(--panel);font-size:.95rem}

/* about */
.people{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:20px}
.person{display:grid;grid-template-columns:132px minmax(0,1fr);gap:20px;padding:20px;background:var(--panel);border:1px solid var(--rule)}
.photo{aspect-ratio:1;display:grid;place-items:center;border:1px solid var(--rule);overflow:hidden;
  background-image:linear-gradient(var(--rule) 1px,transparent 1px),linear-gradient(90deg,var(--rule) 1px,transparent 1px);background-size:20px 20px}
.photo img{width:100%;height:100%;object-fit:cover;display:block}
.mono-mark{padding:6px 10px;background:var(--panel);border:1px solid var(--ink);font:800 1.4rem/1 var(--f-display);font-stretch:125%}
.person h3{margin-bottom:2px}
.role{font:500 .72rem/1.4 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--cobalt);margin-bottom:10px}
.person p{font-size:.98rem;color:var(--ink-2)}

/* forms */
.routes{display:grid;gap:0;margin-top:20px}
.routes li{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-top:1px solid var(--rule);font-size:.97rem}
.routes li span:first-child{font-weight:600;flex:0 0 auto}
.routes li span:last-child{color:var(--ink-2);text-align:right}
form{display:grid;gap:16px}
.field{display:grid;gap:6px}
.field label{font:500 .72rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
.field .opt{text-transform:none;letter-spacing:0}
input,select,textarea{width:100%;padding:12px 14px;border:1.5px solid var(--ink);border-radius:2px;background:var(--paper);color:var(--ink);font:400 1rem/1.4 var(--f-body)}
textarea{min-height:110px;resize:vertical}
.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}
.consent{font-size:.88rem;color:var(--ink-2)}
.consent a{text-decoration:underline}
.status{padding:12px 14px;border:1.5px solid var(--cobalt);background:var(--paper);font-size:.95rem}
.status.warn{border:1px dashed var(--warn-line);background:var(--warn-bg);color:var(--warn-fg)}
.status.warn ul{list-style:disc;padding-left:1.2em}
.notice{padding:14px 16px;border:1px solid var(--rule);background:var(--panel);color:var(--ink-2);font-size:.95rem}
.notice b{color:var(--ink);font-weight:600}

/* product page */
.back{display:inline-block;margin-bottom:24px;font:500 .78rem/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);text-decoration:none}
.back:hover{color:var(--cobalt)}
.pdp{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(24px,4vw,64px);align-items:start}
.gallery{min-width:0}
.gallery .stage-view{border:1.5px solid var(--ink);background:var(--panel);aspect-ratio:1;display:grid;place-items:center;overflow:hidden}
.slide{width:100%;height:100%;display:block}
.slide img,.slide video,.slide iframe,.slide model-viewer{width:100%;height:100%;object-fit:contain;display:block;border:0}
.thumbs{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.thumb{position:relative;width:76px;height:76px;padding:0;border:1.5px solid var(--rule);background:var(--panel);cursor:pointer;overflow:hidden}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.thumb.is-active{border-color:var(--cobalt)}
.thumb .badge{position:absolute;right:4px;bottom:4px;padding:2px 5px;background:var(--ink);color:var(--paper);font:500 .6rem/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase}
.gallery-empty{padding:12px;text-align:center}
.pdp-info{display:grid;gap:18px;min-width:0}
.pdp-info h1{font:800 clamp(2rem,4.4vw,3.2rem)/1.02 var(--f-display);font-stretch:112%;letter-spacing:-.02em;margin:0;text-wrap:balance}
.pdp-info .cat{font:500 .72rem/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--cobalt)}
.pdp-info .price{font-size:1.5rem}
.pdp-info .btn{width:100%;padding:16px 20px;font-size:1rem}
.option{display:grid;gap:6px}
.option label{font:500 .72rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
.prose{color:var(--ink-2);max-width:68ch}
.prose>*+*{margin-top:12px}
.prose h2,.prose h3{color:var(--ink);font-size:1.15rem;margin-top:20px}
.prose ul{list-style:disc;padding-left:1.2em;display:grid;gap:6px}
.prose ol{list-style:decimal;padding-left:1.2em;display:grid;gap:6px}
.prose a{color:var(--cobalt);text-decoration:underline}
.prose img{height:auto}
.specs-block h2{font:700 1.15rem/1.25 var(--f-display);font-stretch:100%;letter-spacing:0;margin:0 0 10px}
.specs{display:grid;border-top:1.5px solid var(--ink)}
.specs div{display:grid;grid-template-columns:minmax(110px,.8fr) minmax(0,1.4fr);gap:12px;padding:10px 0;border-bottom:1px solid var(--rule)}
.specs dt{font:500 .72rem/1.5 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}
.specs dd{font-size:.97rem}
.specs .full{grid-template-columns:1fr}

/* password page */
.pw{min-height:100vh;display:grid;place-items:center;padding:24px}
.pw-box{width:min(520px,100%);display:grid;gap:18px}
.pw-title{font:800 clamp(2.4rem,9vw,4rem)/.95 var(--f-display);font-stretch:125%;letter-spacing:-.03em;margin:8px 0 0}
.pw-form{gap:12px}
.fine{margin-top:22px;display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center;font-size:.85rem;color:var(--ink-2)}
.fine a{color:var(--ink-2)}
.fine a:hover{color:var(--cobalt)}

/* footer */
footer{border-top:1.5px solid var(--ink);padding-block:36px}
.foot{display:flex;flex-wrap:wrap;gap:20px 40px;justify-content:space-between;align-items:center}
.foot nav{display:flex;flex-wrap:wrap;gap:8px 22px}
.foot a{text-decoration:none;color:var(--ink-2);font-size:.95rem}
.foot a:hover{color:var(--cobalt)}

@media (max-width:860px){
  .hero-grid,.sec-head,.split,.pdp{grid-template-columns:1fr}
  .sec-head{align-items:start}
}
@media (max-width:760px){
  .links{display:none;margin-left:0}
  .menu-btn{display:block}
  .bar .btn{margin-left:auto}
  .links.open{display:flex;flex-direction:column;gap:0;order:5;width:100%}
  .links.open a{padding:13px 0;border-top:1px solid var(--rule);border-bottom:0}
}
@media (max-width:560px){
  .person{grid-template-columns:96px minmax(0,1fr);gap:14px;padding:16px}
  .stage{font-size:.72rem;padding:14px 4px;letter-spacing:.02em}
  .routes li{flex-direction:column;gap:2px}
  .routes li span:last-child{text-align:left}
  .specs div{grid-template-columns:1fr;gap:2px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition:none!important}
}

/* v3.0 additions */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cat-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 28px}
.cat-tabs a{padding:9px 14px;border:1px solid var(--ink);font:500 .78rem/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;text-decoration:none}
.cat-tabs a:hover{background:var(--ink);color:var(--paper)}
.cat-tabs a[aria-current="page"]{background:var(--ink);color:var(--paper)}
.thumb-ph{position:absolute;inset:0;display:grid;place-items:center;font:500 .7rem/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}
.legal{max-width:72ch}
.legal h2,.legal h3{color:var(--ink);margin-top:26px}
.legal h3{font-size:1.1rem}
