:root{--sand:#ece5d9;--paper:#f6f1e8;--ink:#2e2a24;--muted:#8a8174;--line:#2e2a241f;--sage:#7a8b74;--bronze:#a3855a;--ok:#7fa58a;--wrong:#ffffff59;--serif:"Cormorant Garamond", "Times New Roman", serif;--sans:"Jost", -apple-system, system-ui, sans-serif;--slow:.9s cubic-bezier(.22, 1, .36, 1);--panel-width:380px;font-family:var(--sans);color:var(--ink);background:var(--sand);font-weight:300}*{box-sizing:border-box}body{background:radial-gradient(ellipse at 50% 0%, var(--paper) 0%, transparent 70%), var(--sand);-webkit-user-select:none;user-select:none;-webkit-font-smoothing:antialiased;min-height:100dvh;margin:0}button{font:inherit;color:inherit;cursor:pointer}.shell{min-height:100dvh}.app{min-height:100dvh;transition:padding-right var(--slow);flex-direction:column;justify-content:center;align-items:center;padding:72px 24px 96px;display:flex}.screen{text-align:center;width:100%;max-width:980px;animation:arrive 1.4s var(--slow) both;flex-direction:column;align-items:center;gap:32px;display:flex}@keyframes arrive{0%{opacity:0;filter:blur(4px);transform:translateY(16px)}to{opacity:1;filter:none;transform:none}}h1,h2{font-family:var(--serif);letter-spacing:-.01em;margin:0;font-weight:300;line-height:1.05}h1{font-size:clamp(56px,9vw,104px)}h2{font-size:clamp(36px,5vw,56px)}em{color:var(--bronze);font-style:italic}.eyebrow{letter-spacing:.32em;text-transform:uppercase;color:var(--muted);margin:0;font-size:13px}.lead{max-width:28ch;font-family:var(--serif);color:var(--muted);margin:0;font-size:26px}.primary{border:1px solid var(--ink);letter-spacing:.28em;text-transform:uppercase;transition:background var(--slow), color var(--slow);background:0 0;border-radius:999px;margin-top:8px;padding:20px 56px;font-size:14px}.primary:active,.primary:hover{background:var(--ink);color:var(--paper)}.primary:disabled{opacity:.4}.link{color:var(--muted);letter-spacing:.08em;border:0;border-bottom:1px solid var(--line);background:0 0;padding:4px 0;font-size:15px}.countdown{font-variant-numeric:tabular-nums}.progress{gap:12px;margin:0;padding:0;list-style:none;display:flex;position:fixed;top:32px;left:50%;transform:translate(-50%)}.progress li{border:1px solid var(--muted);width:6px;height:6px;transition:background var(--slow);border-radius:50%}.progress li.is-reached{background:var(--muted)}.picker{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:20px;width:100%;display:grid}.picker__option{border:1px solid var(--line);font-family:var(--serif);transition:transform var(--slow), background var(--slow), border-color var(--slow);background:#f6f1e899;border-radius:4px;flex-direction:column;align-items:center;gap:18px;padding:32px 20px 24px;font-size:24px;font-style:italic;display:flex}.picker__option:active,.picker__option:hover{background:var(--paper);border-color:var(--bronze);transform:translateY(-4px)}.design{background:var(--paper);border-radius:4px;gap:5px;padding:10px;display:grid;box-shadow:0 20px 40px -24px #2e2a2459}.design--large{width:min(320px,70vw)}.design--small{gap:3px;width:120px;padding:6px}.design__brick{aspect-ratio:1;border-radius:3px;box-shadow:inset 0 -2px #00000026,inset 0 1px #ffffff26}.build-layout{flex-wrap:wrap;justify-content:center;align-items:center;gap:72px;display:flex}.build-target{flex-direction:column;align-items:center;gap:24px;display:flex}.breath{aspect-ratio:1;place-items:center;width:min(360px,80vw);display:grid;position:relative}.breath__ring{position:absolute;inset:0;transform:rotate(-90deg)}.breath__track{fill:none;stroke:var(--line);stroke-width:1px}.breath__progress{fill:none;stroke:var(--bronze);stroke-width:1.5px;stroke-linecap:round;transition:stroke-dashoffset 1s linear}.breath__orb{aspect-ratio:1;background:radial-gradient(circle at 35% 30%, var(--paper), #d9cdb8 70%);border-radius:50%;width:70%;transition:transform 4s cubic-bezier(.45,0,.55,1);position:absolute;transform:scale(.62);box-shadow:0 30px 60px -30px #a3855a99}.breath__orb.is-inhaling{transform:scale(1)}.breath__label{flex-direction:column;align-items:center;gap:4px;display:flex;position:relative}.breath__label span{font-family:var(--serif);color:var(--muted);font-size:24px;font-style:italic}.breath__label strong{letter-spacing:.24em;font-size:15px;font-weight:300}.scan-layout{flex-wrap:wrap;justify-content:center;align-items:center;gap:48px;display:flex}.scan-target{flex-direction:column;align-items:center;gap:16px;display:flex}.scanner{flex-direction:column;gap:12px;display:flex}.scanner__video{display:none}.scanner__viewport{aspect-ratio:1;border-radius:4px;width:min(520px,82vw);position:relative;overflow:hidden;box-shadow:0 30px 60px -30px #2e2a2480}.scanner__canvas{background:var(--ink);filter:saturate(.9);width:100%;height:100%;display:block}.scanner__grid{display:grid;position:absolute;inset:0}.scanner__cell{border:1px solid var(--wrong);transition:box-shadow .4s,border-color .4s;position:relative}.scanner__cell.is-ok{border-color:var(--ok);box-shadow:inset 0 0 0 3px #7fa58a8c}.scanner__seen{border:1px solid #fffc;border-radius:50%;width:12px;height:12px;position:absolute;bottom:8px;right:8px}.error{color:#7a3a2e;background:#f4e4df;border:1px solid #c9a39a;border-radius:4px;margin-top:32px;padding:14px 22px;font-size:15px}.error button{background:0 0;border:0;text-decoration:underline}.emergency,.panel-toggle{border:1px solid var(--line);color:var(--muted);letter-spacing:.2em;text-transform:uppercase;touch-action:none;background:0 0;border-radius:999px;padding:10px 18px;font-size:11px;position:fixed;bottom:24px}.emergency{right:24px}.emergency.is-holding{color:#fff;background:#b5584a;transition:background 3s linear}.panel-toggle{left:24px}.panel{width:min(var(--panel-width), 100vw);background:var(--paper);border-left:1px solid var(--line);transition:transform var(--slow);-webkit-user-select:text;user-select:text;z-index:10;padding:24px;font-size:14px;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;transform:translate(100%);box-shadow:-30px 0 60px -40px #2e2a2466}.panel.is-open{transform:none}@media (width>=1100px){.has-panel .app{padding-right:calc(var(--panel-width) + 24px)}.has-panel .emergency{right:calc(var(--panel-width) + 24px)}}.panel__header{justify-content:space-between;align-items:center;display:flex}.panel__header h3{font-family:var(--serif);margin:0;font-size:28px;font-style:italic;font-weight:400}.panel__close{color:var(--muted);background:0 0;border:0;font-size:28px;line-height:1}.panel__switch{color:var(--muted);align-items:center;gap:10px;margin:16px 0 8px;display:flex}.panel__group{border-top:1px solid var(--line);padding:18px 0}.panel__group h4{letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin:0 0 12px;font-size:11px;font-weight:400}.panel__buttons{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.panel__buttons+.panel__buttons{margin-top:8px}.panel__buttons button,.panel__buttons input{border:1px solid var(--line);font:inherit;background:0 0;border-radius:999px;padding:8px 14px}.panel__buttons button:active{background:var(--ink);color:var(--paper)}.panel__buttons input[type=number]{text-align:center;border-radius:4px;width:64px}.panel__buttons input[type=color]{border-radius:4px;width:44px;height:36px;padding:2px}.panel__range{align-items:center;gap:12px;display:flex}.panel__range input{accent-color:var(--bronze);flex:1}.panel__range output{text-align:right;font-variant-numeric:tabular-nums;min-width:3ch}.panel__swatches{gap:8px;margin-bottom:10px;display:flex}.panel__swatches button{border:1px solid var(--line);border-radius:50%;width:32px;height:32px}.panel__status{background:var(--sand);white-space:pre-wrap;word-break:break-word;border-radius:4px;margin:0;padding:12px;font-size:12px}.panel__log{margin:0;padding:0;font-size:12px;list-style:none}.panel__log li{border-bottom:1px dashed var(--line);grid-template-columns:auto 1fr;gap:2px 10px;padding:6px 0;display:grid}.panel__log li span{color:var(--muted)}.panel__log li small{color:var(--muted);grid-column:2}.panel__log li.is-failed code,.panel__log li.is-failed small{color:#b5584a}
