/* The public website's look: calm, light, a lot of space. Nothing shared with the tool. */
:root{--paper:#fbfaf7;--sand:#f3f1ec;--tile:#eeece6;--ink:#1a1a18;--mut:#6c6962;--line:#e2ded6;--ok:#2f6a3f;--err:#a8321f;--max:1280px}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Instrument Sans",system-ui,sans-serif;font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit}
img,svg{display:block;max-width:100%}
.wrap{max-width:var(--max);margin:0 auto;padding:0 28px}
.serif{font-family:"Instrument Serif",Georgia,serif;font-weight:400;letter-spacing:-.01em}
.eyebrow{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--mut);font-weight:600;margin:0 0 14px}
h1,h2,h3{margin:0;font-weight:400}
p{margin:0}

/* header */
.hd{position:sticky;top:0;z-index:20;background:rgba(251,250,247,.92);backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid transparent;transition:border-color .2s}
.hd.scrolled{border-color:var(--line)}
.hd .wrap{display:flex;align-items:center;gap:28px;height:68px}
.mark{font-weight:600;font-size:15px;letter-spacing:.32em;text-transform:uppercase;text-decoration:none;white-space:nowrap}
.hd nav{display:flex;gap:26px;margin-left:auto;font-size:14px}
.hd nav a{text-decoration:none;color:var(--mut)}
.hd nav a:hover,.hd nav a[aria-current=page]{color:var(--ink)}
.bag{display:inline-flex;align-items:center;gap:8px;border:0;background:none;font:inherit;font-size:14px;cursor:pointer;color:var(--ink);padding:6px 0}
.bag i{font-style:normal;min-width:22px;height:22px;border-radius:11px;background:var(--ink);color:var(--paper);font-size:12px;display:inline-grid;place-items:center;padding:0 6px}

/* buttons and fields */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font:inherit;font-size:15px;font-weight:500;letter-spacing:.01em;background:var(--ink);color:var(--paper);border:1px solid var(--ink);border-radius:999px;padding:14px 26px;cursor:pointer;text-decoration:none;white-space:nowrap;transition:opacity .15s}
.btn:hover{opacity:.86}
.btn.ghost{background:transparent;color:var(--ink)}
.btn.small{padding:9px 16px;font-size:14px}
.btn:disabled{opacity:.4;cursor:not-allowed}
.link{border:0;background:none;padding:0;font:inherit;color:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.field{display:block;margin:0 0 14px}
.field span{display:block;font-size:13px;color:var(--mut);margin-bottom:5px}
.field input,.field textarea,.field select{width:100%;font:inherit;font-size:16px;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:4px;padding:12px 13px}
.field textarea{resize:vertical;min-height:90px}
input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--mut);margin:6px 0 16px;cursor:pointer}
.check input{margin-top:3px;width:16px;height:16px;accent-color:var(--ink)}
.choice{border:0;padding:0;margin:4px 0 12px}.choice legend{font-size:14px;color:var(--ink);margin-bottom:6px}.choice .check{margin:4px 0}
.err{color:var(--err);font-size:14px;margin-top:8px}
.trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* code box */
.code{display:flex;gap:10px;max-width:440px}
.code input{flex:1;min-width:0;font:inherit;font-size:18px;letter-spacing:.18em;text-transform:uppercase;padding:13px 16px;border:1px solid var(--ink);border-radius:999px;background:transparent;color:var(--ink)}
.code input::placeholder{color:#b3afa6;letter-spacing:.18em}

/* home */
.hero{padding:56px 0 72px}
.hero .wrap{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:center}
.hero h1{font-size:clamp(46px,6.4vw,92px);line-height:.98;margin-bottom:24px}
.hero .lead{font-size:18px;color:var(--mut);max-width:34ch;margin-bottom:34px}
.hero .codelabel{font-size:14px;margin-bottom:10px}
.hero .alt{margin-top:22px;font-size:15px}
.hero-art{background:var(--tile);border-radius:2px;aspect-ratio:4/5;display:grid;place-items:center;overflow:hidden}
.hero-art svg{width:92%}
.strip{padding:84px 0;border-top:1px solid var(--line)}
.strip h2{font-size:clamp(32px,3.6vw,48px);line-height:1.05;margin-bottom:12px}
.strip .sub{color:var(--mut);max-width:52ch;margin-bottom:40px}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;counter-reset:s}
.steps div{border-top:1px solid var(--ink);padding-top:16px}
.steps div::before{counter-increment:s;content:"0" counter(s);display:block;font-size:13px;letter-spacing:.14em;color:var(--mut);margin-bottom:22px}
.steps h3{font-size:19px;font-weight:500;margin-bottom:6px}
.steps p{color:var(--mut);font-size:15px}
.values{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.values b{display:block;font-weight:500;font-size:17px;margin-bottom:4px}
.values span{color:var(--mut);font-size:15px}
.band{background:var(--ink);color:var(--paper);padding:84px 0}
.band .wrap{display:flex;align-items:end;justify-content:space-between;gap:30px;flex-wrap:wrap}
.band h2{font-size:clamp(34px,4vw,56px);line-height:1.02;max-width:16ch}
.band .btn{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.band .btn.ghost{background:transparent;color:var(--paper)}
.band .sub{color:rgba(251,250,247,.7);margin-top:14px;max-width:44ch}
.strip .more{margin-top:44px}
.acts{display:flex;gap:10px;flex-wrap:wrap}
.co-hero .wrap>.acts{flex:0 1 auto}
#koodi,#code{scroll-margin-top:90px}

/* product grid */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:36px 22px}
.tile{display:block;align-self:start;text-decoration:none;border:0;background:none;padding:0;text-align:left;font:inherit;color:inherit;cursor:pointer}
.tile .pic{background:var(--tile);aspect-ratio:4/5;display:grid;place-items:center;position:relative;overflow:hidden;border-radius:2px}
.tile .pic svg{width:100%;height:auto;transition:opacity .35s}
.sheet .pics svg,.line .thumb svg,.hero-art svg,.preview .pic svg{height:auto}
.tile .pic .back{position:absolute;inset:0;margin:auto;opacity:0}
.tile:hover .pic .back,.tile:focus-visible .pic .back{opacity:1}
.tile:hover .pic .front,.tile:focus-visible .pic .front{opacity:0}
.tile .nm{margin-top:12px;font-size:15px;font-weight:500;overflow-wrap:break-word;hyphens:auto}
.tile .ty{font-size:14px;color:var(--mut)}
.dots{display:flex;gap:6px;margin-top:8px}
.dots i{width:12px;height:12px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}
.cats{display:flex;gap:22px;flex-wrap:wrap;margin:0 0 30px;font-size:15px}
.cats button{border:0;background:none;font:inherit;color:var(--mut);padding:0 0 4px;cursor:pointer;border-bottom:1px solid transparent}
.cats button[aria-pressed=true]{color:var(--ink);border-color:var(--ink)}

/* company page */
.co-hero{padding:48px 0 40px;border-bottom:1px solid var(--line);margin-bottom:40px}
.co-hero .wrap{display:flex;justify-content:space-between;gap:40px;align-items:end;flex-wrap:wrap}
.co-hero h1{font-size:clamp(40px,5.4vw,76px);line-height:1}
.co-hero .wrap>div{flex:1 1 420px;max-width:760px}
.co-hero .lead{color:var(--mut);max-width:46ch;margin-top:16px}
.co-logo{max-width:220px;max-height:110px;object-fit:contain}.co-logo.dark{filter:brightness(0)}
.new{background:var(--sand);border-bottom:1px solid var(--line);padding:16px 0;font-size:15px}
.new b{letter-spacing:.14em}

/* the whole collection */
.filters{display:flex;align-items:center;gap:18px 32px;flex-wrap:wrap;margin:0 0 44px}
.filters .cats{margin:0}
.pick{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--mut)}
.pick select{font:inherit;font-size:15px;color:var(--ink);border:1px solid var(--ink);border-radius:999px;padding:9px 40px 9px 16px;cursor:pointer;-webkit-appearance:none;appearance:none;
  background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%231a1a18' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 16px center}
.count{margin-left:auto;font-size:14px;color:var(--mut)}
.sect{margin:0 0 28px}
.sect h2{font-size:clamp(28px,3vw,40px);line-height:1.05}
.sect p{color:var(--mut);max-width:60ch;margin-top:8px}
.grid+.sect{margin-top:80px;padding-top:44px;border-top:1px solid var(--line)}
#list{padding-bottom:84px}
.tile .for{font-size:13px;color:var(--mut)}
.facts{margin:22px 0 0;font-size:14px}
.facts div{display:grid;grid-template-columns:110px 1fr;gap:12px;border-top:1px solid var(--line);padding:8px 0}
.facts dt{color:var(--mut)}
.facts dd{margin:0}
.sheet .go p{font-size:15px}

/* product sheet and order bag */
dialog{border:0;padding:0;color:var(--ink);background:var(--paper);max-width:none;max-height:none}
dialog::backdrop{background:rgba(26,26,24,.38)}
.sheet{width:min(1060px,100vw);height:min(760px,100dvh);margin:auto;display:grid;grid-template-columns:1.1fr 1fr}
.sheet .pics{background:var(--tile);display:grid;place-items:center;position:relative;padding:26px}
.sheet .pics>div:not(.views){width:100%;max-width:600px}
.sheet .pics svg{width:100%;max-height:100%}
.sheet .views{position:absolute;bottom:18px;left:0;right:0;display:flex;justify-content:center;gap:8px}
.sheet .views button{font:inherit;font-size:13px;border:1px solid var(--ink);background:transparent;border-radius:999px;padding:6px 14px;cursor:pointer}
.sheet .views button[aria-pressed=true]{background:var(--ink);color:var(--paper)}
.sheet .info{padding:34px 34px 28px;overflow:auto;display:flex;flex-direction:column}
.sheet h2{font-size:36px;line-height:1.05;margin:4px 0 6px}
.sheet .ty{color:var(--mut)}
.sheet .idea{margin:16px 0 22px;color:var(--mut);font-size:15px}
.x{position:absolute;top:14px;right:14px;width:40px;height:40px;border-radius:50%;border:0;background:var(--paper);cursor:pointer;font-size:20px;line-height:1;z-index:2}
.lbl{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--mut);margin:18px 0 10px}
.ways{display:flex;gap:10px;flex-wrap:wrap}
.ways button{width:32px;height:32px;border-radius:50%;border:0;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(0,0,0,.18);outline-offset:3px}
.ways button[aria-pressed=true]{outline:1.5px solid var(--ink)}
.wayname{font-size:14px;margin-top:8px}
.sizes{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:8px}
.sizes label{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:13px;color:var(--mut)}
.sizes input{width:100%;text-align:center;font:inherit;font-size:16px;color:var(--ink);border:1px solid var(--line);border-radius:4px;padding:9px 4px;background:#fff}
.sizes input:not(:placeholder-shown){border-color:var(--ink)}
.total{margin:16px 0 0;font-size:15px}
.sheet .go{margin-top:auto;padding-top:20px;display:grid;gap:10px}
.guide{font-size:14px;border-collapse:collapse;width:100%;margin-top:10px}
.guide th,.guide td{border-bottom:1px solid var(--line);padding:6px 4px;text-align:center}
.guide th:first-child,.guide td:first-child{text-align:left}
.drawer{margin:0 0 0 auto;width:min(480px,100vw);height:100dvh}
.drawer .in{height:100%;display:flex;flex-direction:column}
.drawer header{display:flex;justify-content:space-between;align-items:center;padding:22px 26px;border-bottom:1px solid var(--line)}
.drawer header h2{font-size:28px}
.drawer .body{flex:1;overflow:auto;padding:8px 26px 26px}
.line{display:grid;grid-template-columns:76px 1fr auto;gap:14px;padding:16px 0;border-bottom:1px solid var(--line);align-items:start}
.line .thumb{background:var(--tile);aspect-ratio:4/5;display:grid;place-items:center}
.line .nm{font-weight:500}
.line .meta{font-size:14px;color:var(--mut)}
.empty{color:var(--mut);padding:40px 0;text-align:center}
.done{text-align:center;padding:60px 10px}
.done h2{font-size:40px;margin-bottom:12px}

/* make your own */
.make{padding:44px 0 80px}
.make .wrap{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.make h1{font-size:clamp(40px,5vw,68px);line-height:1;margin-bottom:16px}
.make .lead{color:var(--mut);margin-bottom:30px}
.drop{border:1px dashed #b9b4aa;border-radius:4px;padding:34px 20px;text-align:center;cursor:pointer;background:#fff;transition:background .15s}
.drop.over{background:var(--sand)}
.drop b{display:block;font-weight:500;margin-bottom:4px}
.drop span{color:var(--mut);font-size:14px}
.preview{display:grid;grid-template-columns:1fr 1fr;gap:14px;position:sticky;top:90px}
.preview .pic{background:var(--tile);aspect-ratio:4/5;display:grid;place-items:center;border-radius:2px}
.swatch{display:flex;gap:10px;align-items:center;font-size:14px;color:var(--mut);margin:12px 0 18px}
.swatch input{width:40px;height:32px;border:1px solid var(--line);border-radius:4px;padding:2px;background:#fff}

/* text page and footer */
.text{max-width:720px;margin:0 auto;padding:56px 28px 80px}
.text h1{font-size:48px;margin-bottom:24px}
.text h2{font-size:20px;font-weight:500;margin:28px 0 8px}
.text p,.text li{color:#3d3b37;margin-bottom:10px}
.ft{border-top:1px solid var(--line);padding:46px 0 56px;font-size:14px;color:var(--mut)}
.ft .wrap{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap}
.ft .mark{color:var(--ink);display:block;margin-bottom:10px}
.ft-links{display:flex;flex-direction:column;gap:4px}

/* about and contact */
.strip.first{border-top:0;padding-top:20px}
.tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.tags li{border:1px solid var(--line);border-radius:999px;padding:8px 16px;font-size:15px;background:#fff}
.story{display:grid;grid-template-columns:1fr 1.4fr;gap:56px;align-items:start}
.story p{color:#3d3b37;font-size:17px;margin-bottom:14px;max-width:60ch}
.band .acts .btn.ghost{border-color:var(--paper)}
.contact .reach{display:grid;gap:26px;padding-top:110px}
.reach h3{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--mut);font-weight:600;margin-bottom:6px}
.reach a,.reach p{font-size:18px}
.reach a{text-decoration-thickness:1px;text-underline-offset:4px}
.sent{padding:30px 0}
.sent h2{font-size:40px;margin-bottom:10px}
.sent p{color:var(--mut)}

@media (max-width:900px){
  .wrap{padding:0 16px}
  .hd nav a:not(:first-child){display:none}
  .hero{padding:28px 0 56px}
  .hero .wrap,.make .wrap{grid-template-columns:1fr;gap:34px}
  .steps,.values{grid-template-columns:1fr 1fr}
  .sheet{grid-template-columns:1fr;height:100dvh;overflow:auto;display:block}
  .sheet .pics{aspect-ratio:1/1;height:auto}
  .sheet .info{overflow:visible}
  .preview{position:static}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 12px}
  .filters{gap:16px;margin-bottom:34px}
  .pick,.pick select{width:100%}
  .pick select{flex:1}
  .filters .cats{flex-wrap:nowrap;overflow-x:auto;white-space:nowrap;width:calc(100% + 32px);margin:0 -16px;padding:4px 16px 2px;gap:18px;scrollbar-width:none}
  .filters .cats::-webkit-scrollbar{display:none}
  .count{margin-left:0}
  .grid+.sect{margin-top:56px;padding-top:34px}
  .story{grid-template-columns:1fr;gap:18px}
  .contact .reach{padding-top:0}
}
@media (max-width:520px){.steps,.values{grid-template-columns:1fr}.code{flex-direction:column}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
