@font-face{font-family:"Host";src:url(/fonts/host.woff2) format("woff2");font-weight:300 700;font-display:swap}
@font-face{font-family:"Crimson";src:url(/fonts/crimson-i.woff2) format("woff2");font-weight:300 600;font-style:italic;font-display:swap}
@font-face{font-family:"Martian";src:url(/fonts/martian.woff2) format("woff2");font-weight:400;font-display:swap}
:root{--ink:#121212;--mut:#5b5d55;--paper:#f7f8ef;--lime:#e9f3b4;--lime2:#d7ea7c;--line:#1212121f;--tab:#fff;--acc:#5a3fd0;
--sans:"Host",system-ui,-apple-system,"Segoe UI",sans-serif;--serif:"Crimson",Georgia,"Times New Roman",serif;--mono:"Martian",ui-monospace,Menlo,monospace}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:16px}
body{margin:0;color:var(--ink);font:400 17px/1.45 var(--sans);background:linear-gradient(180deg,#fdfdfa 0,var(--paper) 900px,var(--lime) 2600px,#f4f8dd 4200px,var(--paper) 7000px);overflow-x:hidden}
body.np-on{padding-bottom:96px}
a{color:inherit}
em,i,.lab{font-family:var(--serif);font-style:italic;font-weight:400}
h1 em,h2 em{font-weight:400;letter-spacing:-.01em}
button{font:inherit;color:inherit;cursor:pointer}
.mono{font-family:var(--mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase}
.skip{position:absolute;left:-999px;top:8px;background:#000;color:#fff;padding:8px 12px;z-index:9}
.skip:focus{left:8px}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
.lab{font-size:19px;color:var(--mut);margin:0}
.br{display:block}

/* folder tabs */
.top{position:relative;z-index:3;display:flex;justify-content:space-between;align-items:flex-start;padding:10px 20px 0;border-bottom:1px solid var(--line);background:linear-gradient(#f2f2ec,#fbfbf7)}
.tabs{display:flex;gap:6px;align-items:flex-end}
.ftab{display:inline-flex;align-items:baseline;gap:4px;text-decoration:none;background:var(--tab);padding:10px 18px 8px;border-radius:10px 10px 0 0;box-shadow:0 -1px 0 #0000000d,0 -6px 14px -10px #0003;font:400 24px/1 var(--sans);letter-spacing:-.01em;text-transform:none;white-space:nowrap}
.ftab i{font-size:20px;color:var(--mut)}
.tabs .ftab{text-transform:uppercase}
.tabs .f1{margin-top:14px}.tabs .f2{margin-top:6px}.tabs .f3{margin-top:0}
.ftab:hover{background:var(--lime)}
.tlinks{display:flex;gap:22px;padding-top:6px}
.tlinks a{text-decoration:none}.tlinks a:hover{text-decoration:underline}

/* hero */
.hero{position:relative;padding:34px 20px 8px;min-height:430px;overflow:hidden}
.ascii{position:absolute;right:-20px;top:-190px;margin:0;font:400 8px/8.6px var(--mono);color:#12121233;white-space:pre;pointer-events:none;user-select:none;z-index:0}
.hero h1{position:relative;z-index:1;margin:0 0 0 13vw;font:300 clamp(46px,8.6vw,134px)/.94 var(--sans);letter-spacing:-.045em}
.hero h1 .br{margin-left:-13vw}
.hero h1 em{font-size:1.08em}
.l-a{position:absolute;left:20px;top:68px;z-index:1}
.l-b{position:relative;z-index:1;margin:16px 0 0 13vw}
.lede{position:relative;z-index:1;max-width:560px;margin:10px 0 0 13vw;font-size:19px;background:#fdfdfaD9;padding:2px 0}

/* generator */
.gen{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,430px) minmax(0,1fr);gap:48px;padding:26px 20px 64px;max-width:1500px}
.gen-ctl .lab{display:block;margin:18px 0 8px}.gen-ctl .lab:first-child{margin-top:0}
.gen-ctl .lab span{font-size:15px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip,.seg button{border:1px solid var(--ink);background:transparent;border-radius:999px;padding:6px 12px;font-size:15px;line-height:1.1}
.chip[aria-pressed=true],.seg button[aria-pressed=true]{background:var(--ink);color:#fff}
.chip:hover,.seg button:hover{background:var(--lime2);color:var(--ink)}
.seg{display:flex;flex-wrap:wrap;gap:6px}
#word{width:100%;font:300 22px var(--sans);border:0;border-bottom:1px solid var(--ink);background:transparent;padding:6px 0;border-radius:0}
#word::placeholder{color:#8b8d84}
.go{display:flex;align-items:center;gap:18px;margin-top:22px}
.btn{display:inline-block;border:0;background:var(--ink);color:#fff;border-radius:999px;padding:12px 22px;font-size:16px;text-decoration:none}
.btn:hover{background:var(--acc)}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--ink)}
.btn.ghost:hover{background:var(--lime2)}
.link{background:none;border:0;padding:0;text-decoration:underline;text-underline-offset:3px;font-size:inherit}
.gen-out{min-width:0}
.out{list-style:none;margin:6px 0 0;padding:0;border-top:1px solid var(--line)}
.row{border-bottom:1px solid var(--line);padding:12px 0}
.row-main{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.row-n{font:300 clamp(26px,2.6vw,38px)/1.1 var(--sans);letter-spacing:-.02em;flex:1 1 280px;min-width:0;overflow-wrap:anywhere;margin:0}
.row-n small{font:400 10px var(--mono);color:var(--mut);margin-left:8px;letter-spacing:.04em;vertical-align:middle}
.acts{display:flex;gap:6px;flex-wrap:wrap}
.acts button{border:1px solid var(--line);background:#ffffffb3;border-radius:8px;padding:5px 10px;font:400 11px var(--mono);letter-spacing:.04em;text-transform:uppercase}
.acts button:hover{border-color:var(--ink);background:var(--lime)}
.acts button[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}
.row .starter{margin-top:10px}
.shareout{display:flex;gap:8px;align-items:center;margin-top:10px;flex-wrap:wrap}
.shareout input{flex:1 1 220px;min-width:0;font:400 13px var(--mono);border:1px solid var(--ink);border-radius:8px;padding:7px 9px;background:#fff}
.shareout .err{color:#a0281e;font-size:14px}
.saved ul{list-style:none;display:flex;flex-wrap:wrap;gap:6px;padding:0;margin:8px 0 0}
.saved li{display:flex;align-items:center;gap:4px;border:1px solid var(--ink);border-radius:999px;padding:3px 4px 3px 12px;font-size:15px}
.saved li button{border:0;background:none;padding:2px 6px;font-size:13px}

/* track list */
.tlist{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:6px}
.tlist li{display:flex;gap:4px;align-items:stretch;min-width:0}
.tplay{flex:1;min-width:0;display:grid;grid-template-columns:48px minmax(0,1fr);grid-template-rows:auto auto;column-gap:10px;align-items:center;text-align:left;border:1px solid var(--line);background:#ffffffa6;border-radius:10px;padding:5px}
.tplay img{grid-row:1/3;border-radius:6px;display:block}
.tplay .tt{font-size:15px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tplay .ta{font:400 10px/1.3 var(--mono);color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tplay:hover{border-color:var(--ink)}
.tplay.on{background:var(--ink);color:#fff;border-color:var(--ink)}.tplay.on .ta{color:#cfd1c6}
.sp{display:flex;align-items:center;justify-content:center;text-align:center;width:58px;line-height:1.25;padding:0 4px;text-transform:uppercase;border:1px solid var(--line);border-radius:10px;font:400 9px var(--mono);text-decoration:none;color:var(--mut);background:#ffffffa6}
.sp:hover{border-color:var(--ink);color:var(--ink)}

/* steps */
.steps{padding:40px 20px 70px}
.steps h2,.ideas h2,.formulas h2,.faq h2{font:300 clamp(34px,4.4vw,64px)/1 var(--sans);letter-spacing:-.035em;margin:0 0 34px}
.steps ol{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:28px}
.steps .ico{font:400 13px/1.15 var(--mono);color:#12121299;margin:16px 0 14px;min-height:70px}
.steps h3{font:500 18px/1.2 var(--sans);margin:0 0 6px}
.steps li p:last-child{margin:0;color:#2c2d28}

/* ideas */
.ideas{padding:30px 20px 40px}
.ideas-head{display:grid;grid-template-columns:13vw minmax(0,1fr);column-gap:0}
.ideas-head .lab{padding-top:10px}
.ideas-head h2{margin-bottom:10px}
.ideas-head p:last-child{grid-column:2;margin:0 0 26px;max-width:560px}
.idx{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid var(--line);padding-left:13vw;margin-bottom:10px}
.idx .ftab{font-size:17px;padding:8px 12px 6px;box-shadow:0 -1px 0 #0000000f}
.idx .ftab i{font-size:15px}
.cat{display:grid;grid-template-columns:13vw minmax(0,1fr);padding:36px 0 26px;border-bottom:1px solid var(--line)}
.cat>.lab{padding-top:8px}
.cat-head,.names,.cat .starter{grid-column:2}
.cat-head{display:flex;gap:30px;align-items:baseline;flex-wrap:wrap}
.cat h3{font:300 clamp(30px,3.4vw,50px)/1.02 var(--sans);letter-spacing:-.03em;margin:0}
.cat-head p{margin:0;max-width:420px;color:#2c2d28}
.names{list-style:none;padding:0;margin:20px 0 6px;columns:3 240px;column-gap:28px}
.names li{break-inside:avoid;border-top:1px dotted #12121240}
.nm{border:0;background:none;padding:6px 0;text-align:left;font:300 22px/1.25 var(--sans);letter-spacing:-.01em;width:100%}
.nm:hover{font-family:var(--serif);font-style:italic;font-weight:400}
.nm.copied::after{content:" copied";font:400 10px var(--mono);color:var(--acc);text-transform:uppercase}
.starter .mono{display:flex;flex-wrap:wrap;gap:14px;align-items:baseline;margin:12px 0 0;color:var(--mut)}
.starter .mono .link{font:inherit;text-transform:uppercase;color:var(--ink)}

/* formulas glossary */
.formulas{padding:70px 20px 50px}
.formulas>.lab,.faq>.lab{margin-bottom:6px}
.formulas dl{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:48px}
.term{display:grid;grid-template-columns:200px minmax(0,1fr);gap:18px;border-top:1px solid var(--line);padding:16px 0}
.term dt{font:400 30px/1 var(--serif)}
.term dd{margin:0}.term dd p{margin:0 0 6px}
.term .ex .nm{display:inline;width:auto;font-size:18px;padding:0;text-decoration:underline;text-decoration-color:#12121240;text-underline-offset:4px}

/* faq */
.faq{padding:50px 20px 80px;max-width:1500px}
.qa{border-top:1px solid var(--line)}
.qa:last-of-type{border-bottom:1px solid var(--line)}
.qa summary{display:grid;grid-template-columns:13vw minmax(0,1fr) 24px;align-items:baseline;padding:16px 0;cursor:pointer;list-style:none}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"+";font:300 26px/1 var(--sans)}
.qa[open] summary::after{content:"\2212"}
.qa h3{font:400 clamp(20px,2vw,28px)/1.2 var(--sans);letter-spacing:-.015em;margin:0}
.qa p{margin:0 0 20px 13vw;max-width:760px}

/* footer */
.foot{padding:20px 20px 30px;border-top:1px solid var(--ink)}
.wm{font:300 clamp(56px,13vw,210px)/.9 var(--sans);letter-spacing:-.06em;margin:0 0 18px;white-space:nowrap;overflow:hidden}
.wm i{font-weight:400}
.foot-row{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.foot-row p{margin:0}
.foot-row .mono a{margin-left:18px}

/* player: a folder tab docked bottom-left, only after Play */
.np{position:fixed;left:16px;bottom:0;z-index:20;width:min(430px,calc(100vw - 32px));filter:drop-shadow(0 -6px 18px #0000002e)}
.np[hidden]{display:none}
.np-tab{display:inline-block;background:var(--ink);color:#fff;border-radius:10px 10px 0 0;padding:6px 14px 4px;font-size:16px}
.np-body{display:flex;gap:12px;align-items:center;background:var(--ink);color:#fff;border-radius:0 12px 0 0;padding:10px 12px 12px}
.np-body img{border-radius:6px;flex:none}
.np-meta{flex:1;min-width:0}
.np-meta b{display:block;font-weight:500;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.np-meta span{display:block;font:400 10px var(--mono);color:#c9cbbf;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.np-bar{height:12px;margin-top:5px;position:relative;cursor:pointer}
.np-bar::before{content:"";position:absolute;left:0;right:0;top:5px;height:2px;background:#ffffff40}
.np-bar span{position:absolute;left:0;top:5px;height:2px;width:0;background:var(--lime2)}
.np-ctl{display:flex;gap:2px}
.np-ctl button{width:34px;height:34px;border:0;border-radius:50%;background:transparent;color:#fff;font-size:12px;letter-spacing:-3px}
.np-ctl button:hover{background:#ffffff1f}
#npPlay{background:var(--lime2);color:var(--ink);letter-spacing:-1px}
#npX{font-size:20px;letter-spacing:0}

.toast{position:fixed;right:16px;bottom:16px;z-index:30;background:var(--ink);color:#fff;padding:8px 14px;border-radius:999px;font-size:14px;opacity:0;transform:translateY(8px);transition:.2s;pointer-events:none}
.toast.on{opacity:1;transform:none}

/* share page */
.shared{position:relative;overflow:hidden;padding:60px 20px 90px;min-height:68vh}
.shared .ascii{top:0}
.shared h1{position:relative;z-index:1;font:300 clamp(44px,9vw,140px)/.95 var(--sans);letter-spacing:-.045em;margin:10px 0 24px;max-width:1200px;overflow-wrap:anywhere}
.shared .lab,.shared .lede,.sbtns,.shared .starter{position:relative;z-index:1}
.sbtns{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.sbtns[hidden],.shared .starter[hidden]{display:none}
.shared .starter{max-width:1100px;margin-top:26px;background:#fdfdfacc}

@media (max-width:1100px){.steps ol{grid-template-columns:repeat(3,minmax(0,1fr))}.formulas dl{grid-template-columns:1fr}}
@media (max-width:820px){
 .gen{grid-template-columns:1fr;gap:28px}
 .hero h1,.l-b,.lede{margin-left:0}.hero h1 .br{margin-left:0}
 .l-a{position:static;margin-bottom:6px}
 .hero{min-height:0}
 .ideas-head,.cat{grid-template-columns:1fr}
 .ideas-head p:last-child,.cat-head,.names,.cat .starter{grid-column:1}
 .idx{padding-left:0}
 .qa summary{grid-template-columns:52px minmax(0,1fr) 22px}
 .qa p{margin-left:52px}
}
@media (max-width:560px){
 body{font-size:16px}
 .top{padding:8px 10px 0}
 .tabs{gap:3px}
 .ftab{font-size:15px;padding:8px 9px 6px}.ftab i{font-size:13px}
 .tabs .f1{margin-top:8px}.tabs .f2{margin-top:4px}
 .tlinks{display:none}
 .hero,.gen,.steps,.ideas,.formulas,.faq,.foot,.shared{padding-left:16px;padding-right:16px}
 .hero{padding-top:22px}
 .ascii{font-size:5px;line-height:5.6px;right:-120px;top:40px}
 .lede{font-size:17px}
 .steps ol{grid-template-columns:1fr 1fr;gap:22px 16px}
 .steps .ico{font-size:11px;min-height:56px}
 .names{columns:1}
 .term{grid-template-columns:1fr;gap:6px}
 .tlist{grid-template-columns:1fr}
 .np{left:8px;width:calc(100vw - 16px)}
 .foot-row .mono a{margin:0 14px 0 0}
 body.np-on{padding-bottom:104px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.toast{transition:none}}
.shared .starter{max-width:1400px}.shared .tlist{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}@media (max-width:560px){.shared .tlist{grid-template-columns:1fr}}
