.enso-page{padding-top:1rem}.enso-head{text-align:center;margin-bottom:2rem}.enso-head h1{max-width:none;margin:0 auto .6rem}.enso-head .lede{margin:0 auto;color:var(--ink-soft)}.enso-app{display:flex;flex-direction:column;align-items:center;gap:1.4rem;--enso-stage: min(84vw, 420px)}.enso-stage{position:relative;width:var(--enso-stage);aspect-ratio:1 / 1;margin:0 auto;border-radius:4px;overflow:hidden;border:1px solid rgba(0,0,0,.06);box-shadow:0 1px 2px #00000008;transition:background .4s ease}.enso-stage canvas{display:block}.enso-canvas{touch-action:none;cursor:crosshair}.enso-featured{display:flex;flex-direction:column;align-items:center;margin:0;gap:.75rem}.enso-featured-label,.enso-gallery-head{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);margin:0;font-weight:500}.enso-meta{display:flex;flex-direction:column;align-items:center;gap:.15rem;font-size:13px;color:var(--ink-faint)}.enso-title{color:var(--ink-soft)}.enso-panel{display:flex;flex-direction:column;align-items:center;gap:1.1rem;width:100%}.enso-swatches{display:flex;gap:2rem;flex-wrap:wrap;justify-content:center;align-items:flex-start}.enso-swatch-group{display:flex;flex-direction:column;align-items:center;gap:.55rem}.enso-swatch-label{font-size:11px;letter-spacing:.12em;color:var(--ink-faint)}.enso-swatch-row{display:flex;gap:.55rem}.enso-swatch{width:26px;height:26px;border:1px solid rgba(0,0,0,.08);padding:0;cursor:pointer;position:relative;transition:transform .15s ease,box-shadow .15s ease,opacity .2s}.enso-swatch.paper{border-radius:3px}.enso-swatch.ink{border-radius:50%}.enso-swatch.dark{border-color:#ffffff29}.enso-swatch.on{box-shadow:0 0 0 2px var(--paper),0 0 0 3px #57493a}.enso-swatch:hover:not(.off):not(.on){transform:translateY(-1px)}.enso-swatch.off{opacity:.4;cursor:not-allowed}.enso-commit{display:flex;flex-direction:column;align-items:center;gap:.9rem;width:100%;max-width:320px}.enso-fields{display:flex;flex-direction:column;gap:.6rem;width:100%;position:relative}.enso-input{width:100%;background:transparent;border:none;border-bottom:1px solid var(--line-strong);padding:.45rem .2rem;font-family:var(--sans);font-size:14px;color:var(--ink);text-align:center;transition:border-color .2s}.enso-input::placeholder{color:var(--ink-ghost)}.enso-input:focus{outline:none;border-color:var(--ink-faint)}.enso-hp{position:absolute;left:-9999px;top:0;width:1px;height:1px;opacity:0;pointer-events:none}.enso-actions{display:flex;gap:1.5rem;align-items:baseline}.enso-do,.enso-undo,.enso-more{background:none;border:none;cursor:pointer;font-family:var(--sans);padding:.2rem 0;transition:color .2s,border-color .2s}.enso-do{font-size:15px;color:var(--ink);border-bottom:1px solid var(--ink)}.enso-do:hover{color:var(--gold);border-color:var(--gold)}.enso-undo{font-size:13px;color:var(--ink-faint);border-bottom:1px solid transparent}.enso-undo:hover{color:var(--ink-soft)}.enso-invite,.enso-hint,.enso-note,.enso-left{font-size:13px;color:var(--ink-faint);text-align:center;margin:0}.enso-invite{font-size:15px;color:var(--ink-soft)}.enso-left{color:var(--ink-soft)}.enso-gallery{width:100%;display:flex;flex-direction:column;align-items:center;gap:1.1rem;margin-top:1.4rem;padding-top:1.8rem;border-top:1px solid var(--line)}.enso-grid{display:grid;grid-template-columns:repeat(auto-fill,120px);gap:1.2rem;justify-content:center;width:100%}.enso-tile{margin:0;display:flex;flex-direction:column;gap:.4rem}.enso-tile-stage{position:relative;width:120px;height:120px;border-radius:4px;overflow:hidden;border:1px solid rgba(0,0,0,.06)}.enso-tile-meta{display:flex;flex-direction:column;gap:.05rem;font-size:11px;line-height:1.35;color:var(--ink-faint);text-align:center}.enso-more{font-size:13px;color:var(--ink-faint);border-bottom:1px solid transparent}.enso-more:hover{color:var(--ink);border-color:var(--line-strong)}.enso-practise-toggle{background:none;cursor:pointer;font-family:var(--sans);font-size:13px;letter-spacing:.02em;color:var(--ink-faint);border:1px solid var(--line-strong);border-radius:4px;padding:.5rem 1.1rem;transition:color .2s,border-color .2s}.enso-practise-toggle:hover{color:var(--ink);border-color:var(--ink-faint)}@media (prefers-reduced-motion: reduce){.enso-stage{transition:none}}
