:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#2f2830;background:#f7f1ea;font-synthesis:none;--plum: #6f3f64;--plum-dark: #4c2c46;--cream: #f7f1ea;--paper: #fffdf9;--line: #ded4d9;--muted: #756b73;--shadow: 0 18px 48px rgba(74, 50, 68, .12)}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-width:320px;overscroll-behavior:none}button,input{font:inherit}button{min-height:46px;cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default;opacity:.42}h1,h2,h3,p{margin-top:0}h1,h2{font-family:Georgia,Times New Roman,serif;font-weight:600;letter-spacing:-.02em}h1{font-size:clamp(2.1rem,4vw,3.7rem);line-height:.98;margin-bottom:.65rem}h2{font-size:clamp(1.6rem,3vw,2.5rem);line-height:1.05}.eyebrow{color:var(--plum);font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;margin-bottom:.45rem}.muted,.field-note{color:var(--muted)}.field-note{font-size:.8rem;line-height:1.45}.error{color:#a33f45;font-size:.85rem;font-weight:600}.error.banner{padding:.8rem 1rem;background:#fff0f0;border:1px solid #eec4c4;border-radius:12px}.primary,.secondary,.ghost{border-radius:12px;padding:.72rem 1.05rem;font-weight:700;border:1px solid transparent}.primary{background:var(--plum);color:#fff;box-shadow:0 8px 20px #6f3f6433}.primary:active{background:var(--plum-dark);transform:translateY(1px)}.secondary{background:#fff;color:var(--plum);border-color:#cdbec8}.ghost{background:transparent;color:#544951;border-color:transparent}.wide{width:100%}.icon-button{width:46px;min-width:46px;border:1px solid var(--line);background:#fff;color:var(--plum);border-radius:12px;font-size:1.25rem}.icon-button.danger,button.danger{color:#a33f45}.auth-shell{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:max(2rem,env(safe-area-inset-top)) 1.25rem max(2rem,env(safe-area-inset-bottom));background:radial-gradient(circle at 15% 20%,rgba(204,116,95,.13),transparent 28%),radial-gradient(circle at 85% 80%,rgba(127,155,136,.14),transparent 28%),var(--cream)}.auth-card{width:min(100%,430px);background:#fffdf9ed;border:1px solid #e5d9df;border-radius:28px;padding:clamp(1.7rem,5vw,3rem);box-shadow:var(--shadow)}.auth-card .lede{color:var(--muted);line-height:1.55;margin-bottom:1.8rem}.auth-card form{display:grid;gap:1rem}label{color:#514750;font-size:.8rem;font-weight:700}input{width:100%;min-height:48px;margin-top:.4rem;padding:.7rem .85rem;border:1px solid #cfc3ca;background:#fff;border-radius:11px;color:#2f2830;outline:none}input:focus{border-color:var(--plum);box-shadow:0 0 0 3px #6f3f641f}.brand-mark{width:58px;height:58px;display:grid;grid-template-columns:1fr 1fr;transform:rotate(45deg);gap:3px;margin:0 0 2rem 5px}.brand-mark span{background:var(--plum);border-radius:3px}.brand-mark span:nth-child(2){background:#cc745f}.brand-mark span:nth-child(3){background:#d4a94f}.brand-mark span:nth-child(4){background:#7f9b88}.gallery-shell{min-height:100vh;padding:max(2rem,env(safe-area-inset-top)) max(1.25rem,5vw) max(3rem,env(safe-area-inset-bottom))}.gallery-header{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding-bottom:2rem;border-bottom:1px solid #dfd4d8}.gallery-header h1{font-size:2.3rem;margin-bottom:.25rem}.gallery-header p:last-child{color:var(--muted);margin-bottom:0}.header-actions{display:flex;gap:.65rem;align-items:center}.gallery-intro{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(240px,.7fr);gap:3rem;align-items:end;padding:3.5rem 0 2rem}.gallery-intro h2{margin-bottom:0;max-width:650px}.gallery-intro>p{color:var(--muted);line-height:1.55;margin:0}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.3rem}.project-card{background:var(--paper);border:1px solid #e3d8dd;padding:.7rem;border-radius:20px;box-shadow:0 9px 26px #4a324412}.project-preview{width:100%;aspect-ratio:16/10;display:grid;grid-template-columns:repeat(3,1fr);padding:0;overflow:hidden;border:0;border-radius:13px;background:#fff}.project-preview span{border:.5px solid rgba(255,255,255,.55)}.preview-0 span:nth-child(odd){background:#6f3f64}.preview-0 span:nth-child(2n){background:#d4a94f}.preview-0 span:nth-child(5){background:#f2e6d5}.preview-1 span:nth-child(3n+1){background:#7f9b88}.preview-1 span:nth-child(3n+2){background:#f2e6d5}.preview-1 span:nth-child(3n){background:#cc745f}.preview-2 span:nth-child(2n){background:#8c6a80}.preview-2 span:nth-child(odd){background:#ead6b5}.preview-2 span:nth-child(5){background:#546f64}.preview-3 span:nth-child(3n){background:#d4a94f}.preview-3 span:not(:nth-child(3n)){background:#5d354f}.preview-3 span:nth-child(5){background:#f7f1ea}.project-meta{padding:.85rem .45rem .25rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem}.project-meta h3{margin:0 0 .25rem}.project-meta p{font-size:.76rem;color:var(--muted);margin:0}.empty-state{padding:4rem 1rem;color:var(--muted);text-align:center}.empty-action{width:100%;border:2px dashed #d4c5cc;border-radius:22px;background:#ffffff73;display:grid;gap:.5rem;place-items:center}.empty-action strong{color:var(--plum);font-family:Georgia,Times New Roman,serif;font-size:1.7rem}.empty-quilt{font-size:2.6rem;color:var(--plum)}.loading-screen{min-height:100vh;display:grid;place-items:center;color:var(--plum);font-family:Georgia,Times New Roman,serif;font-size:1.6rem;background:var(--cream)}.editor-shell{height:100vh;height:100dvh;display:flex;flex-direction:column;background:#eee7e1;overflow:hidden}.editor-header{min-height:74px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;padding:max(.65rem,env(safe-area-inset-top)) 1rem .65rem;background:var(--paper);border-bottom:1px solid var(--line);z-index:4}.editor-header .back{justify-self:start}.editor-header .header-actions{justify-self:end}.project-title{text-align:center}.project-title input{min-height:34px;width:min(330px,35vw);margin:0;padding:.25rem .5rem;border:0;background:transparent;font-family:Georgia,Times New Roman,serif;font-size:1.35rem;text-align:center}.project-title span{display:block;font-size:.68rem}.save-ok{color:#55715f}.save-dirty{color:#9b6e27}.save-error{color:#a33f45;max-width:330px}.editor-body{flex:1;min-height:0;display:grid;grid-template-columns:152px minmax(0,1fr) 244px}.tool-rail,.inspector{background:var(--paper);padding:1rem .7rem;overflow-y:auto}.tool-rail{border-right:1px solid var(--line)}.inspector{border-left:1px solid var(--line);padding:1.2rem}.tool-group{display:grid;gap:.35rem;margin-bottom:1.4rem}.tool-group>span{color:var(--muted);font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:.35rem .45rem}.tool-group button{display:flex;gap:.6rem;align-items:center;background:transparent;border:0;border-radius:10px;text-align:left;padding:.5rem;font-size:.78rem;color:#4b4148}.tool-group button:active{background:#f1e8ed}.shape-icon{width:25px;height:25px;flex:0 0 25px;display:inline-block;background:#b88aa9;border:1px solid #76566d}.shape-icon.rectangle{height:17px}.shape-icon.rightTriangle{clip-path:polygon(0 0,100% 100%,0 100%)}.shape-icon.equilateralTriangle{clip-path:polygon(50% 0,100% 100%,0 100%)}.shape-icon.diamond{clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.shape-icon.hexagon{clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%)}.library-icon{width:25px;font-style:normal;font-size:1.3rem;text-align:center;color:var(--plum)}.workspace{min-width:0;display:flex;flex-direction:column}.workspace-toolbar{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.45rem 1rem;background:#f8f3ef;border-bottom:1px solid #d9ced4}.workspace-toolbar>div{display:flex;gap:.35rem}.workspace-toolbar label{display:flex;align-items:center;gap:.5rem;white-space:nowrap}.workspace-toolbar input{width:82px;min-height:38px;margin:0}.workspace-toolbar>span{font-size:.75rem;color:var(--muted)}.canvas-stage{flex:1;min-height:0;display:grid;place-items:center;overflow:hidden;padding:1rem;background-color:#e9e1dc;background-image:radial-gradient(#c7b9c0 1px,transparent 1px);background-size:18px 18px}.canvas-stage .canvas-container{box-shadow:0 12px 34px #422b3b29;touch-action:none;max-width:100%;max-height:100%}.canvas-stage canvas{touch-action:none}.inspector h2{font-size:1.65rem}.inspector h3{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:1.6rem}.inspector-actions{display:grid;gap:.45rem}.inspector-actions button{background:#fff;border:1px solid var(--line);border-radius:10px;color:#554950}.inspector-empty{text-align:center;color:var(--muted);padding-top:5vh}.inspector-empty h2{color:#453a42}.inspector-empty p{line-height:1.5;font-size:.82rem}.selection-glyph{font-size:3.2rem;color:#b59aaa}.swatches{display:grid;gap:.42rem}.swatches button{display:flex;align-items:center;gap:.6rem;border:1px solid transparent;background:transparent;border-radius:10px;padding:.45rem;text-align:left;font-size:.76rem}.swatches button.active{border-color:var(--plum);background:#f5edf2}.swatches span{width:28px;height:28px;border-radius:8px;border:1px solid rgba(0,0,0,.12)}.modal-backdrop{position:fixed;inset:0;z-index:10;display:grid;place-items:end center;padding:1rem;background:#291f2661;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.sheet{width:min(960px,100%);max-height:min(84vh,820px);display:flex;flex-direction:column;background:var(--paper);border-radius:24px 24px 18px 18px;box-shadow:0 28px 80px #291f264d;overflow:hidden}.sheet-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.4rem;border-bottom:1px solid var(--line)}.sheet-header h2{margin:0}.sheet-header .eyebrow{margin-bottom:.2rem}.sheet-footer{padding:.8rem 1.4rem;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.sheet-footer small{color:var(--muted)}.library-columns{min-height:0;overflow-y:auto;display:grid;grid-template-columns:1fr 1fr;gap:2rem;padding:1.4rem}.library-columns h3{margin-bottom:.55rem}.library-columns p{color:var(--muted);font-size:.82rem;line-height:1.5}.block-maker{padding-right:1.7rem;border-right:1px solid var(--line)}.piece-checklist{max-height:220px;overflow:auto;display:grid;gap:.3rem;margin:1rem 0}.piece-checklist label{display:flex;align-items:center;gap:.5rem;padding:.45rem;border-radius:8px;background:#faf7f4}.piece-checklist input{width:20px;min-height:20px;margin:0;box-shadow:none}.piece-checklist span{width:22px;height:22px;border-radius:6px}.saved-blocks{display:grid;gap:.55rem}.saved-blocks article{display:grid;grid-template-columns:44px 1fr auto;gap:.65rem;align-items:center;padding:.6rem;border:1px solid var(--line);border-radius:12px}.saved-blocks small{display:block;color:var(--muted);margin-top:.2rem}.block-icon{width:42px;height:42px;display:grid;place-items:center;background:#f1e5ec;color:var(--plum);border-radius:10px;font-size:1.4rem}.saved-blocks .secondary{padding:.45rem .7rem;min-height:40px}.cut-content{overflow-y:auto;padding:1.4rem}.fabric-plan{margin-bottom:1.6rem;padding-bottom:1.4rem;border-bottom:1px solid var(--line)}.fabric-plan header{display:flex;gap:.8rem;align-items:center}.fabric-plan header>span{width:44px;height:44px;border-radius:12px;border:1px solid rgba(0,0,0,.12)}.fabric-plan header div{display:flex;flex:1;justify-content:space-between;align-items:center;gap:1rem}.fabric-plan h3{margin:0}.fabric-plan p{color:var(--muted);font-size:.8rem}.fabric-plan li{margin:.55rem 0;line-height:1.45}.warning{padding:.8rem;background:#fff4d9;border-radius:9px;color:#785d23}.user-sheet{width:min(980px,100%)}.user-columns{min-height:0;overflow-y:auto;display:grid;grid-template-columns:minmax(250px,.75fr) minmax(380px,1.25fr);gap:1.6rem;padding:1.4rem}.user-columns h3{margin-bottom:.5rem}.user-create{display:grid;align-content:start;gap:.85rem;padding-right:1.5rem;border-right:1px solid var(--line)}.user-create p{color:var(--muted);font-size:.82rem;line-height:1.5;margin-bottom:.2rem}.user-list{display:grid;align-content:start;gap:.55rem}.user-list article{display:grid;grid-template-columns:44px minmax(120px,1fr) auto;gap:.7rem;align-items:center;padding:.7rem;border:1px solid var(--line);border-radius:13px;background:#fff}.user-list article.user-disabled{opacity:.68;background:#f5f1f2}.user-avatar{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:#efe3ea;color:var(--plum);font-family:Georgia,Times New Roman,serif;font-size:1.25rem;font-weight:700}.user-details span{display:block;margin-top:.2rem;color:var(--muted);font-size:.72rem}.user-actions{display:flex;align-items:center;gap:.3rem}.user-actions button{min-height:40px;padding:.45rem .6rem;font-size:.74rem}.reset-form{grid-column:2 / -1;display:grid;grid-template-columns:1fr auto;align-items:end;gap:.55rem;padding-top:.45rem}.reset-form input,.reset-form button{min-height:42px}.user-error{margin:0;padding:.8rem 1.4rem;border-top:1px solid var(--line);background:#fff2f2}.update-toast{position:fixed;z-index:20;left:50%;bottom:max(1rem,env(safe-area-inset-bottom));transform:translate(-50%);display:flex;gap:1rem;align-items:center;padding:.75rem 1rem;background:#30272e;color:#fff;border-radius:14px;box-shadow:var(--shadow);font-size:.84rem}.update-toast button{min-height:38px;border:0;border-radius:9px;background:#fff;color:var(--plum);font-weight:700}@media(max-width:900px){.editor-body{grid-template-columns:112px minmax(0,1fr)}.inspector{position:fixed;right:0;top:74px;bottom:0;width:230px;transform:translate(100%);z-index:5}.tool-rail{padding:.6rem .35rem}.tool-group button{flex-direction:column;justify-content:center;gap:.25rem;text-align:center;font-size:.66rem}.workspace-toolbar>span{display:none}.library-columns,.user-columns{grid-template-columns:1fr}.block-maker,.user-create{border-right:0;border-bottom:1px solid var(--line);padding:0 0 1.5rem}}@media(max-width:680px){.gallery-header{align-items:flex-start;flex-direction:column}.gallery-intro{grid-template-columns:1fr;gap:1rem;padding-top:2.2rem}.editor-header{grid-template-columns:auto 1fr auto}.editor-header .secondary{display:none}.editor-header .primary{padding:.6rem .7rem}.project-title input{width:36vw;font-size:1rem}.editor-body{grid-template-columns:78px minmax(0,1fr)}.workspace-toolbar label{font-size:0}.workspace-toolbar label input{font-size:.78rem}.shape-icon,.library-icon{width:22px;height:22px;flex-basis:22px}.tool-group button{padding:.4rem .2rem}.modal-backdrop{padding:0}.sheet{max-height:92vh;border-radius:22px 22px 0 0}.user-list article{grid-template-columns:40px 1fr}.user-actions{grid-column:2}.reset-form{grid-column:1 / -1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
