*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{overflow:hidden;background:#e6e3dc;color:#1c1b19;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.35;color-scheme:light;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}button,input,select,textarea{font:inherit;color:inherit}button{background:none;border:0;padding:0;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid #0b84ff;outline-offset:2px}h1,h2,p{margin:0}.app{position:fixed;inset:0;overflow:hidden;--top-bar: calc(48px + env(safe-area-inset-top)) ;--tab-bar: calc(56px + env(safe-area-inset-bottom)) ;background:#e6e3dc}.app.boot{background:#e6e3dc}.file-input{position:fixed;left:0;top:0;width:1px;height:1px;opacity:0}.topbar{position:fixed;top:0;left:0;right:0;z-index:25;display:flex;align-items:center;justify-content:space-between;height:var(--top-bar);padding-top:env(safe-area-inset-top);padding-left:max(4px,env(safe-area-inset-left));padding-right:max(4px,env(safe-area-inset-right));background:#fffffff0;border-bottom:1px solid rgba(28,27,25,.08);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.topbar h1{position:absolute;left:50%;top:env(safe-area-inset-top);height:48px;display:flex;align-items:center;transform:translate(-50%);font-size:16px;font-weight:650;letter-spacing:-.01em;pointer-events:none;max-width:30%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-side{display:flex;align-items:center;min-width:88px}.topbar-side-end{justify-content:flex-end}.icon-btn{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;color:#1c1b19}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.icon-btn svg{width:22px;height:22px}.icon-btn:disabled{color:#c4bfb6}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:25;display:flex;height:var(--tab-bar);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);background:#fffffff5;border-top:1px solid rgba(28,27,25,.08);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.tabbar button{position:relative;flex:1;min-height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#8a847c;font-size:11px;font-weight:650}.tabbar button svg{width:22px;height:22px}.tabbar button.is-on{color:#1c1b19}.tabbar button.is-on:before{content:"";position:absolute;top:0;width:28px;height:2px;border-radius:2px;background:#1c1b19}.viewport,.viewport *{touch-action:none}.viewport{position:absolute;inset:0;overflow:hidden;background-color:#e6e3dc;background-image:radial-gradient(circle,rgba(60,52,42,.38) 1px,transparent 1.15px);background-size:calc(var(--zoom) * 22px) calc(var(--zoom) * 22px);background-position:var(--pan-x) var(--pan-y);-webkit-user-select:none;user-select:none}.viewport.is-hidden{display:none!important}.edges{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.edges path{fill:none;stroke:#0b84ff;stroke-width:2.25;stroke-linecap:round}.edges path.is-target{stroke-width:4.5}.edges.draft{z-index:2}.edges.draft path{stroke:#8a847c;stroke-dasharray:6 6}.edges.draft path.is-valid{stroke:#0b84ff;stroke-dasharray:none}.world{position:absolute;top:0;left:0;transform-origin:0 0;z-index:1}.node{position:absolute;left:0;top:0;display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:16px;background:#fff;box-shadow:0 0 0 1px #1c1b190f,0 10px 24px #1c1b1914}.node.is-selected{z-index:2;box-shadow:0 0 0 2px #0b84ff,0 12px 28px #1c1b191f}.node.is-dragging{z-index:3}.node-header{height:28px;display:flex;align-items:center;justify-content:space-between;gap:8px}.node-header h2{font-size:15px;font-weight:650;letter-spacing:-.01em}.kicker{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#6f6a63}.node[data-type=output] .kicker{color:#0b84ff}.node-preview{position:relative;flex:1;min-height:0;border-radius:10px;overflow:hidden;background-color:#f3f1ec;background-image:linear-gradient(45deg,#e4e0d8 25%,transparent 25%),linear-gradient(-45deg,#e4e0d8 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#e4e0d8 75%),linear-gradient(-45deg,transparent 75%,#e4e0d8 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0}.node-preview img{width:100%;height:100%;object-fit:contain;pointer-events:none;-webkit-user-drag:none}.placeholder,.attach-hit{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border-radius:10px;color:#8a847c;font-size:13px;font-weight:650;text-align:center;padding:8px}.attach-hit{color:#0b84ff;background:#f7f5f2;border:1.5px dashed #c9c3b8}.attach-hit svg{width:22px;height:22px}.port{position:absolute;width:44px;height:44px;margin:0;padding:0;display:grid;place-items:center;background:transparent;transform:translate(-50%,-50%);touch-action:none}.port[data-direction=out]{right:0;left:auto;transform:translate(50%,-50%)}.port[data-direction=in]{left:0}.port i{width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 0 0 2px var(--port, #0b84ff)}.port.is-hot i{transform:scale(1.3);background:var(--port, #0b84ff)}.layers-screen{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;padding-top:var(--top-bar);padding-bottom:var(--tab-bar);background:#f6f4f0}.layers-list,.layers-scroll{flex:1;overflow:auto;padding:8px 12px 12px;display:flex;flex-direction:column;gap:8px}.layers-scroll{padding:12px 16px 16px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));gap:12px}.layers-heading{font-size:22px;font-weight:700}.layers-empty{flex:1;display:flex;align-items:center;justify-content:center;padding:24px 8px;text-align:center;color:#6f6a63;font-size:16px;font-weight:600;line-height:1.4}.stack-layer{display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:14px;background:#f3f1ed}.stack-layer-head{display:flex;align-items:center;gap:10px;min-height:40px}.stack-thumb{width:40px;height:40px;flex:none;border-radius:8px;overflow:hidden;background:#e4dfd8}.stack-thumb img{width:100%;height:100%;object-fit:cover}.stack-name{min-width:0;flex:1;font-weight:650}.stack-base{flex:none;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#6f6a63}.blend-select{width:100%;min-height:44px;border-radius:12px;border:1px solid rgba(28,27,25,.12);background:#fff;font-weight:650;padding:0 12px}.stack-actions{display:flex;gap:8px}.stack-actions button{flex:1;min-height:44px;border-radius:12px;background:#fff;font-weight:650;font-size:15px}.stack-actions button:disabled{opacity:.35}.layer-list{display:flex;flex-direction:column;gap:8px}.layer-row{display:flex;align-items:center;gap:2px;min-height:64px;padding:6px 4px 6px 8px;border-radius:14px;background:#f3f1ed}.layer-row.is-dragging{position:relative;z-index:2;background:#fff;box-shadow:0 8px 24px #1c1b1929}.layer-row.is-drop{box-shadow:inset 0 0 0 2px #0b84ff}.layer-open{flex:1;min-width:0;min-height:52px;display:flex;align-items:center;gap:10px;text-align:left}.layer-copy{min-width:0;display:flex;flex-direction:column;gap:2px}.layer-copy .stack-name{flex:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#6f6a63;font-size:13px;font-weight:600}.layer-tools{display:flex;flex:none;align-items:center}.layer-tools button{width:44px;height:44px;border-radius:10px;font-size:18px;font-weight:700}.layer-tools button:disabled{opacity:.35}.drag-handle{touch-action:none}.grip{display:flex;flex-direction:column;gap:3px;align-items:center}.grip i{display:block;width:16px;height:2px;border-radius:999px;background:#6f6a63}.layer-back{align-self:flex-start;min-height:44px;padding:0 4px;color:#0b84ff;font-weight:650}.layer{width:100%;min-height:72px;display:flex;align-items:center;gap:12px;padding:8px;border-radius:14px;background:#fff;text-align:left;box-shadow:0 0 0 1px #1c1b190f}.layer.is-on{box-shadow:0 0 0 2px #0b84ff}.layer-thumb{width:56px;height:56px;flex:none;border-radius:10px;overflow:hidden;background:#efece7}.layer-thumb img{width:100%;height:100%;object-fit:cover}.layer-text{min-width:0;display:flex;flex-direction:column;gap:2px}.layer-title{font-size:16px;font-weight:650}.layer-kicker{font-size:12px;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:#6f6a63}.layers-footer{padding:8px 16px 16px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.backdrop{position:fixed;inset:0;z-index:34;background:#14121052}.sheet{position:fixed;left:0;right:0;z-index:36;display:flex;flex-direction:column;max-height:min(70vh,560px);background:#fff;border-radius:18px 18px 0 0;box-shadow:0 -8px 32px #1c1b191f;animation:sheet-in .22s cubic-bezier(.2,.7,.2,1);padding-bottom:env(safe-area-inset-bottom)}.sheet.is-dragging{animation:none;transition:none}.sheet-dock{z-index:20;bottom:var(--tab-bar);padding-bottom:0;max-height:min(52vh,420px)}.sheet-modal{bottom:0}.grabber-wrap{display:flex;justify-content:center;align-items:center;height:28px;touch-action:none;flex:none}.grabber{width:36px;height:4px;border-radius:999px;background:#d5d0c8}.sheet-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:0 8px 0 16px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(8px,env(safe-area-inset-right))}.sheet-title-row h2{font-size:17px;font-weight:650}.text-btn{min-width:64px;min-height:44px;padding:0 12px;border-radius:12px;color:#0b84ff;font-weight:650}.sheet-body{overflow:auto;padding:4px 16px 16px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));touch-action:pan-y}.stack{display:flex;flex-direction:column;gap:12px}.muted,.hint,.kicker-line{color:#6f6a63;font-size:14px}.kicker-line{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.primary-btn,.secondary-btn,.danger-btn,.add-row{width:100%;min-height:48px;border-radius:12px;font-weight:650;font-size:16px}.primary-btn{background:#0b84ff;color:#fff}.secondary-btn{background:#f3f1ed;color:#1c1b19}.danger-btn{background:#fdeceb;color:#b42318}.turnstile-field{min-height:65px;display:flex;justify-content:center}.add-row{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;min-height:64px;padding:12px 14px;background:#fff;text-align:left;box-shadow:0 0 0 1px #1c1b190f}.add-search-wrap{padding:8px 12px 0;padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}.add-search{width:100%;min-height:44px;padding:0 14px;border:0;border-radius:12px;background:#fff;box-shadow:0 0 0 1px #1c1b1914;font-size:16px;-webkit-user-select:text;user-select:text}.add-group{display:flex;flex-direction:column;gap:8px}.add-group h2{margin:6px 2px 0;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#6f6a63}.add-group+.add-group h2{margin-top:12px}.add-title{font-size:16px;font-weight:650}.add-desc{font-size:13px;font-weight:500;color:#6f6a63}.slider{display:flex;flex-direction:column;gap:4px}.slider-label{display:flex;justify-content:space-between;gap:12px;font-size:14px;font-weight:650}.slider-value{font-variant-numeric:tabular-nums;color:#6f6a63}.slider-detail{font-size:15px;font-weight:650;font-variant-numeric:tabular-nums}input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:44px;background:transparent;touch-action:pan-y}input[type=range]::-webkit-slider-runnable-track{height:4px;background:#e4dfd8;border-radius:999px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:28px;height:28px;margin-top:-12px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #1c1b1947,0 0 0 1px #1c1b1914}input[type=range]::-moz-range-track{height:4px;background:#e4dfd8;border-radius:999px;border:0}input[type=range]::-moz-range-thumb{width:28px;height:28px;border:0;border-radius:50%;background:#fff;box-shadow:0 1px 4px #1c1b1947,0 0 0 1px #1c1b1914}.curve-editor{display:flex;justify-content:center}.curve-graph{width:min(100%,280px);aspect-ratio:1;touch-action:none;background:#f7f4ef;border-radius:14px}.curve-board{fill:#fff;stroke:#e4dfd8;stroke-width:1}.curve-diag{stroke:#e4dfd8;stroke-width:1;stroke-dasharray:4 4}.curve-line{fill:none;stroke:#1c1b19;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.curve-handle{fill:#fff;stroke:#0b84ff;stroke-width:2.5;cursor:grab;touch-action:none}.link-row{min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:15px}.link-row button{min-height:40px;padding:0 12px;border-radius:10px;background:#f3f1ed;font-weight:650;font-size:14px}.final,.final *{touch-action:none}.final{position:fixed;inset:0;z-index:40;background:transparent;overflow:hidden}.final-scrim{position:absolute;inset:0;background:#111}.final-bar{position:absolute;top:0;left:0;right:0;z-index:2;display:flex;align-items:center;justify-content:space-between;height:var(--top-bar);padding-top:env(safe-area-inset-top);padding-left:max(4px,env(safe-area-inset-left));padding-right:max(4px,env(safe-area-inset-right));color:#fff;background:linear-gradient(to bottom,rgba(0,0,0,.45),transparent)}.final-bar button{min-width:72px;min-height:44px;padding:0 12px;color:#fff;font-size:16px;font-weight:650}.final-bar button.is-inactive{opacity:.45}.final-title{position:absolute;left:50%;top:env(safe-area-inset-top);height:48px;display:flex;align-items:center;transform:translate(-50%);font-size:16px;font-weight:650;pointer-events:none}.final-stage{position:absolute;inset:0;z-index:1;display:grid;place-items:center;padding:var(--top-bar) 0 calc(28px + env(safe-area-inset-bottom))}.final-stage img{max-width:100%;max-height:100%;object-fit:contain;transform-origin:center;-webkit-user-drag:none;background-color:#161616;background-image:linear-gradient(45deg,#2a2a2a 25%,transparent 25%),linear-gradient(-45deg,#2a2a2a 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#2a2a2a 75%),linear-gradient(-45deg,transparent 75%,#2a2a2a 75%);background-size:18px 18px;background-position:0 0,0 9px,9px -9px,-9px 0}input[type=color]{width:100%;height:48px;padding:4px;border:0;border-radius:12px;background:#f3f1ed}.toggle-row{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:48px;padding:4px 2px;font-size:16px;font-weight:650;text-align:left}.toggle-pill{min-width:52px;padding:6px 12px;border-radius:999px;background:#f3f1ed;color:#6f6a63;font-size:13px;font-weight:700;text-align:center}.toggle-pill.is-on{background:#0b84ff;color:#fff}.text-draft{width:100%;min-height:88px;padding:10px 12px;border:0;border-radius:12px;background:#fff;box-shadow:0 0 0 1px #1c1b1914;font-size:16px;line-height:1.35;resize:vertical;-webkit-user-select:text;user-select:text}.brush-color{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;min-height:44px;font-size:14px;font-weight:650}.brush-color input[type=color]{width:44px;height:32px;padding:2px;border-radius:8px}.guide-switch{display:flex;gap:3px;padding:3px;border-radius:12px;background:#f3f1ed}.guide-switch button{flex:1;min-height:40px;border-radius:10px;color:#6f6a63;font-weight:650}.guide-switch button.is-on{background:#fff;color:#1c1b19;box-shadow:0 1px 2px #1c1b1914}.paint,.paint *{touch-action:none}.paint{position:fixed;inset:0;z-index:40;display:flex;flex-direction:column;background:#111;overflow:hidden}.paint-bar{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;flex:none;height:var(--top-bar);padding-top:env(safe-area-inset-top);padding-left:max(4px,env(safe-area-inset-left));padding-right:max(4px,env(safe-area-inset-right));color:#fff}.paint-bar button{min-width:72px;min-height:44px;padding:0 12px;color:#fff;font-size:16px;font-weight:650}.paint-bar button:disabled{opacity:.4}.paint-title{position:absolute;left:50%;top:env(safe-area-inset-top);height:48px;display:flex;align-items:center;transform:translate(-50%);font-size:16px;font-weight:650;pointer-events:none}.paint-stage{position:relative;flex:1;min-height:0;overflow:hidden;background-color:#1a1a1a;background-image:linear-gradient(45deg,#2a2a2a 25%,transparent 25%),linear-gradient(-45deg,#2a2a2a 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#2a2a2a 75%),linear-gradient(-45deg,transparent 75%,#2a2a2a 75%);background-size:18px 18px;background-position:0 0,0 9px,9px -9px,-9px 0}.paint-canvas{position:absolute;left:50%;top:50%;transform-origin:center center}.paint-controls{flex:none;display:flex;flex-direction:column;gap:2px;padding:8px 16px calc(10px + env(safe-area-inset-bottom));padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));background:#fff;touch-action:auto}.paint-controls,.paint-controls *{touch-action:auto}.paint-hint{margin:0}.final-empty{color:#fff;text-align:center;padding:24px;display:flex;flex-direction:column;align-items:center;gap:16px;max-width:280px}.final-empty button{min-height:48px;padding:0 18px;border-radius:12px;background:#fff;color:#1c1b19;font-weight:650}.final-caption{position:absolute;left:0;right:0;bottom:calc(16px + env(safe-area-inset-bottom));z-index:2;text-align:center;color:#ffffffc7;font-size:13px;font-weight:650;pointer-events:none}.compare{position:fixed;z-index:19;top:var(--top-bar);left:0;right:0;height:max(120px,calc(100dvh - var(--top-bar) - var(--tab-bar) - min(52vh,420px)));display:flex;gap:8px;padding:8px 12px 10px;padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));background:#fffffff5;border-bottom:1px solid rgba(28,27,25,.08)}.compare-inline{position:relative;z-index:1;top:auto;left:auto;right:auto;height:168px;flex:none;border:1px solid rgba(28,27,25,.08);border-radius:14px}.compare-frame{flex:1;min-width:0;margin:0;display:flex;flex-direction:column;gap:4px}.compare-label{flex:none;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#6f6a63}.compare-picture{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;border-radius:12px;overflow:hidden;background:#eceae4}.compare-picture.is-cutout{background-color:#f6f4f0;background-image:linear-gradient(45deg,#e4dfd8 25%,transparent 25%),linear-gradient(-45deg,#e4dfd8 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#e4dfd8 75%),linear-gradient(-45deg,transparent 75%,#e4dfd8 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0}.compare-picture img{width:100%;height:100%;object-fit:contain;pointer-events:none}.compare-empty{margin:0;padding:8px;text-align:center;color:#6f6a63;font-size:13px;font-weight:600}.save-banner{position:fixed;z-index:28;top:calc(var(--top-bar) + 8px);left:50%;transform:translate(-50%);width:min(360px,calc(100% - 24px));padding:12px 14px;border-radius:16px;background:#1c1b19;color:#fff;display:flex;flex-direction:column;gap:8px;box-shadow:0 8px 24px #1c1b1933}.save-banner p{margin:0;font-size:14px;font-weight:650;line-height:1.35}.save-banner button,.save-banner a{color:#fff;background:transparent;border:1px solid rgba(255,255,255,.35);border-radius:10px;min-height:36px;padding:0 12px;font-weight:650;text-align:center;text-decoration:none;display:grid;place-items:center}.save-banner-quiet{width:auto;padding:8px 14px;border-radius:999px;background:#1c1b19e0}.toast{position:fixed;z-index:60;top:calc(var(--top-bar) + 8px);left:50%;transform:translate(-50%);max-width:calc(100% - 32px);padding:10px 14px;border-radius:999px;background:#1c1b19;color:#fff;font-size:14px;font-weight:650}@keyframes sheet-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.sheet{animation:none}}.sheet-guest-auth{z-index:50}.backdrop:has(+.sheet-guest-auth){z-index:48}.sheet-account,.sheet-projects{max-height:min(86vh,720px)}a.phone-upgrade{display:grid;place-items:center;text-decoration:none}.gate{display:flex;flex-direction:column;justify-content:center;padding:calc(28px + env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) calc(28px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));overflow:auto}.gate-card{width:min(100%,420px);margin:0 auto}.home{display:flex;flex-direction:column;overflow:auto;background:#e6e3dc;padding:calc(8px + env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.home-cover{z-index:80}.home-card{width:min(100%,480px);flex:1 0 auto;margin:0 auto;display:flex;flex-direction:column;gap:16px}.home-header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px}.home-header-lead{display:flex;align-items:center;gap:2px;min-width:0}.home-brand{font-size:13px;font-weight:750;letter-spacing:.14em;color:#1c1b19}.home-back{width:44px;height:44px;margin-left:-10px;display:grid;place-items:center;border-radius:12px;color:#0b84ff}.home-avatar,.profile-avatar{display:grid;place-items:center;border-radius:50%;color:#fff;font-weight:700;flex:none}.home-avatar{width:40px;height:40px;background:#1c1b19;font-size:16px}.home-title{margin:0;font-size:34px;line-height:1.05;letter-spacing:-.035em;font-weight:750}.profile-card{display:flex;align-items:center;gap:14px;padding:16px;border-radius:18px;background:#fff;box-shadow:0 1px 2px #1c1b190a,0 0 0 1px #1c1b190f}.profile-avatar{width:56px;height:56px;background:#0b84ff;font-size:22px}.profile-copy{min-width:0}.profile-name{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:750;letter-spacing:-.02em}.profile-name .ellipsis{min-width:0}.profile-email,.profile-note{color:#6f6a63}.profile-email{margin-top:2px;font-size:14px;overflow-wrap:anywhere}.profile-note{margin-top:4px;font-size:13px}.plan-badge{display:inline-flex;align-items:center;flex:none;min-height:22px;padding:0 8px;border-radius:999px;background:#0b84ff;color:#fff;font-size:12px;font-weight:750;letter-spacing:.01em}.plan-badge.is-free{background:#f3f1ed;color:#6f6a63}.home-open{min-height:52px;border-radius:14px;font-size:17px;box-shadow:0 8px 18px #0b84ff38}.home-alert{margin:0;padding:12px 14px;border-radius:12px;background:#fdeceb;color:#b42318;font-size:14px;font-weight:650}.home-section,.home-settings{display:flex;flex-direction:column;gap:10px}.home-settings{margin-top:auto}.home-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:28px}.storage-total{margin-right:auto;color:#6f6a63;font-size:13px;font-weight:650;font-variant-numeric:tabular-nums}.home-section-head h2{font-size:13px;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:#6f6a63}.home-new{min-width:0;min-height:32px;padding:0 2px}.project-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:22px 16px 16px;border-radius:18px;background:#fff;box-shadow:0 0 0 1px #1c1b190f}.project-empty h3{margin:8px 0 0;font-size:17px;font-weight:750}.project-empty p{color:#6f6a63;font-size:14px;max-width:28ch}.project-empty .secondary-btn{margin-top:10px}.empty-mark,.project-thumb{display:grid;place-items:center;background-color:#f3f1ed;background-image:radial-gradient(rgba(28,27,25,.16) .8px,transparent .8px);background-size:7px 7px}.empty-mark{width:96px;height:68px;border-radius:14px}.empty-mark svg{width:76px;height:42px}.project-card{display:flex;flex-direction:column;border-radius:16px;background:#fff;box-shadow:0 0 0 1px #1c1b190f;overflow:hidden}.project-main{display:flex;align-items:center;gap:12px;width:100%;min-height:80px;padding:12px;text-align:left;border-radius:0;background:transparent}.project-thumb{width:64px;height:52px;flex:none;border-radius:12px}.project-thumb svg{width:52px;height:30px}.project-thumb.has-image{box-shadow:inset 0 0 0 2px #0b84ff}.project-thumb.has-photo{width:64px;height:52px;object-fit:cover;border-radius:12px;flex:none;background:#f3f1ed}.project-sheet-row{border-radius:14px;background:#f7f6f3}.project-copy{min-width:0}.project-name{display:block;font-size:16px;font-weight:750}.project-meta{display:block;margin-top:2px;color:#6f6a63;font-size:13px;font-weight:550}.project-rename,.project-confirm{display:flex;flex-direction:column;gap:10px;padding:12px}.project-confirm{border-top:1px solid rgba(28,27,25,.08);color:#1c1b19;font-size:14px}.project-actions{display:flex;border-top:1px solid rgba(28,27,25,.08)}.project-actions button{flex:1;min-height:44px;border-radius:0;background:transparent;color:#0b84ff;font-size:14px;font-weight:650}.project-actions button+button{box-shadow:inset 1px 0 #1c1b1914}.project-actions .is-danger{color:#b42318}.settings-group{background:#fff;border-radius:16px;box-shadow:0 0 0 1px #1c1b190f;overflow:hidden}.settings-row{width:100%;min-height:52px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-radius:0;background:#fff;text-align:left;font-size:16px;font-weight:650}.settings-row+.settings-row,.settings-form{box-shadow:inset 0 1px #1c1b1914}.settings-form{display:flex;flex-direction:column;gap:12px;padding:14px 16px 16px}.settings-signout{color:#b42318}.settings-chevron{color:#b7b1a8;flex:none}.save-space{display:flex;align-items:flex-start;gap:12px;padding:4px 0}.save-space input{width:22px;height:22px;margin-top:2px;flex:none;accent-color:#0b84ff}.save-space-title{display:block;font-size:16px;font-weight:700}.save-space .muted{display:block;margin-top:2px}.save-space-warn{margin:0;padding:10px 12px;border-radius:12px;background:#fff6e8;color:#8a5a12;font-size:14px;font-weight:650}.gate-title{margin:4px 0 8px;font-size:32px;line-height:1.1;letter-spacing:-.03em}.library-body{height:100%;overflow:auto;display:flex;flex-direction:column;gap:12px;padding:calc(var(--top-bar) + 16px) max(16px,env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.library .topbar-side-end{min-width:104px}.icon-btn.has-account,.icon-btn.has-error{position:relative}.icon-btn.has-account:after,.icon-btn.has-error:after{content:"";position:absolute;top:8px;right:8px;width:8px;height:8px;border-radius:50%;background:#0b84ff;box-shadow:0 0 0 2px #fff}.icon-btn.has-error:after{background:#b42318}.mode-switch{display:flex;gap:8px}.mode-switch button{flex:1;min-height:44px;border-radius:999px;background:#f3f1ed;font-size:15px;font-weight:650}.mode-switch button.is-on{background:#1c1b19;color:#fff}.account-field{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:650}.account-field input{width:100%;min-height:48px;padding:0 14px;border:0;border-radius:12px;background:#f3f1ed;font-size:16px;font-weight:500;user-select:text;-webkit-user-select:text}.account-error{color:#b42318;font-size:14px;font-weight:650}.account-text{align-self:flex-start;padding-left:0;padding-right:0}.project-row{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;width:100%;min-height:64px;padding:12px 14px;border-radius:12px;background:#fff;text-align:left;box-shadow:0 0 0 1px #1c1b1914}.project-row.is-on{box-shadow:0 0 0 2px #1c1b19}.billing-card{display:flex;flex-direction:column;gap:8px;padding:14px;border-radius:18px;background:#fff;box-shadow:0 0 0 1px #1c1b190f}.interval-toggle{display:flex;gap:8px}.interval-toggle button{flex:1;min-height:40px;padding:0 10px;border-radius:999px;background:#f3f1ed;color:#1c1b19;font-size:13px;font-weight:700}.interval-toggle button.is-on{background:#1c1b19;color:#fff}.billing-renewal,.billing-note,.legal-note{margin:0;color:#6f6a63;font-size:13px;font-weight:650}.site-footer{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:8px;color:#6f6a63;font-size:13px;font-weight:650}.site-footer a{color:inherit;text-decoration:underline;text-underline-offset:2px}.legal-copy{gap:14px}.legal-copy h2,.plan-offer h2{margin:8px 0 0;font-size:18px;font-weight:750}.legal-copy p,.plan-offer p{margin:0;color:#3c3934;font-size:15px;line-height:1.45}.plan-offer{display:flex;flex-direction:column;gap:6px;padding:16px;border-radius:18px;background:#fff;box-shadow:0 0 0 1px #1c1b190f}.plan-price{font-size:20px;font-weight:750;color:#1c1b19}.legal-copy a{color:#0b84ff}.add-title{display:flex;align-items:center;gap:6px}.add-row.is-locked{opacity:.72}.add-lock{flex:none}.add-lock-note{margin:4px 2px 0;color:#1c1b19;font-size:14px;font-weight:650}@media(hover:hover)and (pointer:fine){.icon-btn:hover:not(:disabled),.tabbar button:hover,.text-btn:hover{background:#1c1b190f}}.app.landing{--landing-ink: #141311;--landing-muted: #5c574f;--landing-line: rgba(20, 19, 17, .12);--landing-sky: #dce8f4;--landing-wash: #e8e2d6;overflow-x:clip;overflow-y:auto;background:radial-gradient(120% 80% at 80% -10%,var(--landing-sky) 0%,transparent 55%),linear-gradient(165deg,#f2efe8 0%,var(--landing-wash) 48%,#ddd6c8 100%);color:var(--landing-ink);font-family:Figtree,ui-sans-serif,system-ui,sans-serif;-webkit-user-select:text;user-select:text}.landing-shell{width:min(100%,560px);margin:0 auto;min-height:100%;display:flex;flex-direction:column;gap:28px;padding:calc(16px + env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}.landing-top{min-height:28px}.landing-brand{font-family:Syne,Figtree,sans-serif;font-size:15px;font-weight:800;letter-spacing:-.03em;color:var(--landing-ink)}.landing-hero{display:flex;flex-direction:column;gap:22px;min-height:min(72dvh,640px)}.landing-copy{display:flex;flex-direction:column;gap:12px;position:relative;z-index:2;container-type:inline-size;container-name:landing-copy}.landing-title{font-family:Syne,Figtree,sans-serif;font-size:clamp(2.1rem,11vw,4.4rem);font-size:clamp(2.1rem,13.5cqi,4.4rem);font-weight:800;letter-spacing:-.07em;line-height:.92;max-width:100%;overflow-wrap:normal;word-break:keep-all}.landing-tagline{max-width:18ch;font-size:1.15rem;line-height:1.35;color:var(--landing-muted);font-weight:450}.landing-cta{display:flex;flex-direction:column;gap:10px;margin-top:8px}.landing-secondary{display:grid;grid-template-columns:1fr 1fr;gap:10px}.landing-secondary .secondary-btn{background:#ffffff8c;box-shadow:inset 0 0 0 1px var(--landing-line)}.landing-stage{position:relative;flex:1 1 auto;min-height:280px;margin:0 -4px;border-radius:0;overflow:hidden;touch-action:pan-y;background:linear-gradient(180deg,rgba(255,255,255,.18),transparent 40%),repeating-linear-gradient(-12deg,transparent 0 10px,rgba(20,19,17,.025) 10px 11px)}.landing-wires{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:1}.landing-wires path{fill:none;stroke:#0b84ff6b;stroke-width:2;stroke-linecap:round;stroke-dasharray:5 7}.landing-node-wrap{position:absolute;z-index:2;width:min(32%,122px);will-change:transform;animation:landing-float 8s ease-in-out infinite;pointer-events:auto;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}.landing-node-wrap.is-dragging{z-index:4;cursor:grabbing;animation:none}.landing-node-wrap.is-placed{animation:none}.landing-deco-node{position:relative;left:auto;top:auto;width:100%;height:auto;aspect-ratio:204 / 176;transform:none;gap:6px;padding:9px;box-shadow:0 0 0 1px #1c1b190f,0 12px 28px #1c1b191f}.landing-deco-node .node-header{height:22px}.landing-deco-node .node-header h2{font-size:11px;font-weight:650;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.landing-deco-node .kicker{font-size:9px;letter-spacing:.04em;flex-shrink:0}.landing-deco-node .node-preview{border-radius:8px}.landing-deco-node .port{width:28px;height:28px;top:50%;pointer-events:none}.landing-deco-node .port i{width:11px;height:11px}.landing-features{display:flex;flex-direction:column;gap:10px;padding-top:8px;border-top:1px solid var(--landing-line)}.landing-features-title{font-family:Syne,Figtree,sans-serif;font-size:1.35rem;font-weight:700;letter-spacing:-.03em}.landing-features-lead{color:var(--landing-muted);font-size:.98rem}.landing-feature-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:14px}.landing-feature-list li{display:flex;flex-direction:column;gap:2px}.landing-feature-list strong{font-family:Syne,Figtree,sans-serif;font-size:1.02rem;letter-spacing:-.02em}.landing-feature-list span{color:var(--landing-muted);font-size:.95rem;line-height:1.4}.landing .site-footer{margin-top:auto;padding-top:8px}@keyframes landing-float{0%,to{translate:0 0}50%{translate:0 -6px}}@media(prefers-reduced-motion:reduce){.landing-node-wrap{animation:none}}@media(min-width:720px){.landing-hero{display:grid;grid-template-columns:1fr 1.05fr;align-items:center;gap:20px;min-height:min(78dvh,720px)}.landing-stage{min-height:380px}.landing-node-wrap{width:min(34%,138px)}}
