:root{font-family:Arial,Helvetica,sans-serif;color:#242421;background:#f5f1e9;font-size:12px;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{color:inherit;background:transparent;border:1px solid #cecbc2;border-radius:3px;padding:11px 12px;cursor:pointer;transition:background .15s}button:hover{background:#e7e3d9}button:disabled{opacity:.35;cursor:default}button:focus-visible,input:focus-visible{outline:2px solid #65675a;outline-offset:3px}header{height:96px;display:flex;align-items:center;padding:0 32px;gap:24px;border-bottom:1px solid #dad6cc}.brand{font-size:32px;font-weight:700;letter-spacing:-1.8px;color:#1e1e1b;text-decoration:none}.brand span{font-size:10px;vertical-align:top;letter-spacing:0;margin:7px 0 0 5px;display:inline-block}.tag{font:9px monospace;letter-spacing:1.7px;margin-left:auto;color:#7d7c73}header button{font-size:11px;border:0;border-bottom:1px solid #96968b;border-radius:0;padding:8px 0;margin-left:35px}main{display:grid;grid-template-columns:260px minmax(320px,1fr) 260px;height:calc(100vh - 96px)}aside{padding:29px 25px;overflow:auto}.panel{border-right:1px solid #dedacf}.collection{border-left:1px solid #dedacf}.eyebrow{font:9px monospace;letter-spacing:1.5px;color:#77776e}h1{font-size:36px;line-height:.99;font-weight:400;letter-spacing:-1.8px;margin:30px 0 20px}.intro,.hint{font-size:11px;line-height:1.6;color:#858377}.intro{margin-bottom:31px}.hint{font-size:10px;margin:12px 0 0}section{padding:20px 0;border-top:1px solid #d8d4ca}h2{font-size:11px;letter-spacing:-.2px;margin:0 0 20px;font-weight:500}h2 span{font-size:13px}label{display:block;margin:18px 0 11px;font-size:11px}output{float:right;color:#848479;font:10px monospace}input[type=range]{appearance:none;background:#cbc7bb;height:1px;width:100%;margin:6px 0 12px;cursor:pointer}input[type=range]::-webkit-slider-thumb{appearance:none;background:#33352e;border:3px solid #f5f1e9;box-shadow:0 0 0 1px #8a8a7e;width:12px;height:12px;border-radius:50%}input[type=text]{width:100%;padding:12px 0;border:0;border-bottom:1px solid #c6c2b7;background:transparent;border-radius:0;font-size:11px;margin-bottom:14px}.wide{width:100%;font-size:11px;margin:0 0 8px;text-align:left;display:block}.primary,.active{background:#2d3028!important;color:#faf8f1!important;border-color:#2d3028}.primary:hover{background:#424638!important}.primary{text-align:center}.segmented{display:flex;gap:4px}.segmented button{flex:1;font-size:10px;padding:10px 6px}.two{display:flex;gap:6px}.two button{flex:1;padding:9px 5px;font-size:10px}.limit-note{font-size:10px;line-height:1.6;color:#858477;border-top:1px solid #d8d4ca;padding-top:19px}.limit-note span{font-size:10px;float:right;color:#868c74}#undo{margin-top:12px}.viewport{position:relative;overflow:hidden}#canvas-host{position:absolute;inset:0}canvas{display:block;touch-action:none}.view-top,.view-bottom{position:absolute;z-index:2;left:28px;right:28px;display:flex;justify-content:space-between}.view-top{top:28px;align-items:center;pointer-events:none}.view-top button{pointer-events:auto;font-size:10px;padding:9px 12px;background:#f5f1e9a8}.pill{font:8px monospace;letter-spacing:1px;color:#7e7d72}.tiny-cross{margin:0 12px}.instrument{position:absolute;width:94%;height:87%;top:6%;left:3%;pointer-events:none;fill:none;stroke:#89887d;stroke-width:.65;opacity:.23}.instrument .dotted{stroke-dasharray:1 7;stroke-width:1.3}.orbit-pad{position:absolute;z-index:3;right:24px;bottom:131px;width:99px;height:123px;display:flex;align-items:center;flex-direction:column;background:#f5f1e9c9;border-radius:50% 50% 4px 4px;padding:7px 0;gap:0}.orbit-pad:before{content:'';position:absolute;pointer-events:none;width:94px;height:94px;top:0;border:1px solid #aaa99b;border-radius:50%;opacity:.55}.orbit-pad>span{font:7px monospace;letter-spacing:1px;color:#7b7c6f;position:absolute;top:40px;left:-35px}.orbit-pad button{height:25px;width:27px;padding:0;border:0;font-size:14px;position:relative;border-radius:50%}.orbit-pad .zoom{display:flex;gap:15px;border-top:1px solid #d8d4ca;margin-top:9px;padding-top:4px}.view-bottom{bottom:50px;display:block;pointer-events:none}.canvas-tools{display:flex;gap:5px;pointer-events:auto;width:max-content}.canvas-tools button{font-size:10px;padding:10px 14px;background:#f7f4edd9}.view-bottom>span{display:block;font:8px monospace;color:#929083;margin-top:13px;letter-spacing:.1px}#status{position:absolute;z-index:2;bottom:19px;left:28px;right:25px;font-size:10px;color:#7c7e6c}.collection>.eyebrow{margin-bottom:28px}.collection section:first-of-type{border-top:0;padding-top:0}#variants{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:18px 0}.variant{position:relative;min-width:0}.load-stone{display:block;width:100%;padding:0;overflow:hidden;background:#ebe7dd;border:0}.variant img{display:block;width:100%;aspect-ratio:1.25;object-fit:cover}.variant .name{display:block;font:9px monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:9px 6px}.delete-stone{position:absolute;top:3px;right:3px;border:0;border-radius:50%;background:#f5f1e9c9;width:19px;height:19px;padding:0}.empty{grid-column:1/-1;border:1px dashed #ccc8bd;min-height:115px;display:flex;align-items:center;text-align:center;padding:20px;font:10px/1.6 monospace;color:#a09d90}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(min-width:1600px){main{grid-template-columns:285px 1fr 285px}aside{padding:35px}}@media(max-width:1150px){main{grid-template-columns:230px minmax(320px,1fr);height:auto}.panel{height:calc(100vh - 96px)}.viewport{height:calc(100vh - 96px);min-height:650px}.collection{grid-column:1/-1;border-top:1px solid #dad6cc;border-left:0;display:grid;grid-template-columns:1fr 1fr;gap:25px}.collection>.eyebrow{grid-column:1/-1;margin:0}.collection section{border:0}.tag{font-size:8px;letter-spacing:1px}}@media(max-width:650px){header{height:74px;padding:0 18px;gap:10px}.brand{font-size:25px}.tag{display:none}header button{margin-left:auto}main{display:flex;flex-direction:column}.viewport{order:-1;height:620px;min-height:620px}.panel{height:auto;overflow:visible;border-right:0;border-top:1px solid #dad6cc;display:grid;grid-template-columns:1fr 1fr;gap:15px}.panel h1{font-size:33px;margin:0}.panel .eyebrow{grid-column:1/-1}.panel .intro{margin:0;align-self:end}.panel section{margin-top:12px}.panel .limit-note{grid-column:1/-1}.collection{display:block}.view-top{left:18px;right:18px}.view-bottom{left:18px}.canvas-tools button{padding:9px 12px}.view-bottom>span{font-size:7px}.orbit-pad{right:18px;bottom:131px}#status{left:18px;font-size:9px}.instrument{width:98%;left:1%}}

h3{font-size:11px;font-weight:500;margin:18px 0 0}.tool-icon{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}[data-mode]{display:inline-flex;align-items:center;justify-content:center;gap:5px}

/* Keep the entire zoom row below the orbit ring. */
.orbit-pad{height:139px;background:transparent;border-radius:0}
.orbit-pad:before{background:#f5f1e9cc;opacity:1;border-color:#aaa99b88}
.orbit-pad .zoom{margin-top:21px;padding-top:7px;border-top:0;background:#f5f1e9cc;border-radius:4px;gap:15px}

.measurement-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1;fill:none;stroke:#66695d;stroke-width:1;opacity:0}.measurement-overlay text{font:10px monospace;letter-spacing:1px;fill:#66695d;stroke:#f5f1e9;stroke-width:3px;paint-order:stroke;stroke-linejoin:round;text-anchor:middle;dominant-baseline:middle}.measurement-witness{stroke-dasharray:2 5}#ruler{display:inline-flex;align-items:center;gap:6px}.canvas-tools{max-width:100%;flex-wrap:wrap}

/* Intro preserves the final layout: panels fade in without moving the canvas. */
header,.panel,.collection,.view-top,.view-bottom,.orbit-pad,#status{transition:opacity .65s ease,visibility .65s}
.intro-loading header,.intro-loading .panel,.intro-loading .collection,.intro-loading .view-top,.intro-loading .view-bottom,.intro-loading .orbit-pad,.intro-loading #status{opacity:0;visibility:hidden;pointer-events:none}
.intro-loading #canvas-host{opacity:0;pointer-events:none}
.intro-loading body{overflow:hidden}
.instrument{opacity:0}
.intro-loading .instrument{opacity:0;z-index:4;mask-image:conic-gradient(transparent 0deg,transparent 360deg)}


@media(max-width:650px){.viewport{height:clamp(480px,calc(100svh - 74px),740px);min-height:480px}.canvas-tools{gap:4px}.canvas-tools button{padding:9px 8px}.view-bottom{right:18px}}
@media(prefers-reduced-motion:reduce){header,.panel,.collection,.view-top,.view-bottom,.orbit-pad,#status{transition:none}}

#collab-loader{position:fixed;inset:0;z-index:100;background:#f5f1e9;display:grid;place-items:center;pointer-events:auto;will-change:transform}
.loader-mark{grid-area:1/1;width:180px;opacity:0}.loader-mark svg{display:block;width:100%;height:auto}
.erik-mark{animation:erik-presence 3s cubic-bezier(.35,0,.25,1) both}.kos-mark{animation:kos-presence 3s both}
.signature-trace{stroke-dasharray:1;stroke-dashoffset:0}.signature-finish{opacity:1}
.logo-once .signature-trace{stroke-dashoffset:1;animation:signature-draw 1.1s cubic-bezier(.35,0,.25,1) .1s forwards}
.logo-once .signature-finish{opacity:0;animation:signature-complete .18s ease 1.05s forwards}
.kos-mark .signature-trace{animation-delay:1.6s}.kos-mark .signature-finish{animation-delay:2.55s}
.collab-credit{display:flex;align-items:center;gap:12px;margin-left:12px}.collab-credit svg{width:43px;height:40px}.collab-credit span{color:#96968b;font:10px monospace}
.intro-complete .logo-loop .signature-trace{animation:signature-loop 14s cubic-bezier(.35,0,.25,1) infinite}
.intro-complete .logo-loop .signature-finish{animation:signature-fill-loop 14s ease infinite}
@keyframes signature-draw{to{stroke-dashoffset:0}}
@keyframes signature-complete{to{opacity:1}}
@keyframes erik-presence{0%,40%{opacity:1;transform:translateX(0) scale(1)}57%,100%{opacity:1;transform:translateX(-82px) scale(.78)}}
@keyframes kos-presence{0%,49%{opacity:0;transform:translateX(82px) scale(.78)}54%,100%{opacity:1;transform:translateX(82px) scale(.78)}}
@keyframes signature-loop{0%,100%{stroke-dashoffset:1}10%,91%{stroke-dashoffset:0}}
@keyframes signature-fill-loop{0%,8%,94%,100%{opacity:0}10%,91%{opacity:1}}
@media(max-width:650px){.collab-credit{gap:6px;margin-left:0}.collab-credit svg{width:29px;height:30px}.collab-credit span{font-size:8px}header{gap:8px}.brand{font-size:23px}}
@media(prefers-reduced-motion:reduce){.loader-mark,.signature-trace,.signature-finish{animation:none!important}.erik-mark{opacity:0}.kos-mark{opacity:1}.signature-trace{stroke-dashoffset:0!important}.signature-finish{opacity:1!important}}
/* A failed module load must not leave an opaque curtain over the app. */
html:not(.intro-loading) #collab-loader{pointer-events:none}
#collab-loader{animation:loader-failsafe 0s 15s forwards}
@keyframes loader-failsafe{to{visibility:hidden;pointer-events:none}}

/* Give the collection title breathing room beneath its section label. */
.collection>.eyebrow{margin-bottom:42px}
@media(max-width:1150px) and (min-width:651px){.collection>.eyebrow{margin-bottom:17px}}
@media(max-width:650px){.collection>.eyebrow{margin-bottom:32px}}

#seed{display:flex;align-items:center;gap:8px}

/* Collaboration marks occupy the far-right header; scene actions stay together. */
header .collab-credit{margin-left:8px;flex-shrink:0}header .tag{margin-left:auto}
.view-top{align-items:flex-start}.view-top .pill{padding-top:10px}.view-actions{display:flex;flex-direction:column;gap:8px;pointer-events:auto}.view-actions button{min-width:80px}
@media(max-width:650px){header .collab-credit{margin-left:auto}.view-top .pill{max-width:calc(100% - 95px);line-height:1.7}}
@media(prefers-reduced-motion:reduce){.erik-mark{opacity:1;transform:translateX(-82px) scale(.78)}.kos-mark{opacity:1;transform:translateX(82px) scale(.78)}}

/* k.os opens from its central join, then the wings settle flat. */
.loader-cross{grid-area:1/1;font:19px monospace;color:#77776e;opacity:0;animation:collab-cross .45s ease 1.6s forwards}
@keyframes collab-cross{to{opacity:1}}
.kos-flex{overflow:visible}
@media(prefers-reduced-motion:reduce){.loader-cross{animation:none!important;opacity:1}}

/* k.os arrives as one solid mark, then rests quietly in the header. */
.kos-mark{position:relative}
.kos-landing{position:relative;z-index:1;transform-origin:center}
.kos-landing-shadow{position:absolute;left:50%;bottom:-7px;width:72%;height:9px;border-radius:50%;background:#242421;opacity:0;pointer-events:none}
.kos-header{transition:transform .35s cubic-bezier(.25,.65,.3,1);transform-origin:center}
@media(hover:hover) and (pointer:fine){.kos-header:hover{transform:translateY(-2px)}}
@media(prefers-reduced-motion:reduce){.kos-header{transition:none}.kos-header:hover{transform:none}}
