:root{color-scheme:light;font-family:"Noto Serif SC","Source Han Serif SC",Songti SC,STSong,SimSun,ui-serif,Iowan Old Style,Times New Roman,serif;background:#efe6d6;color:#201b16;--ease-out: cubic-bezier(.2, .8, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--dur-1: .12s;--dur-2: .18s;--dur-3: .26s;--paper: rgba(252, 245, 232, .92);--paper-solid: #fcf5e8;--ink: #201b16;--muted: rgba(32, 27, 22, .62);--line: rgba(32, 27, 22, .16);--tea: #8f5b2a;--sage: #56644e;--clay: #a14d3a;--pine: #2c2a22;--stone: #2b241e;--shadow: 0 20px 55px rgba(44, 28, 16, .12);--ink-bleed: radial-gradient(120px 26px at 12% 2%, rgba(32, 27, 22, .16), transparent 72%), radial-gradient(132px 24px at 88% 3%, rgba(32, 27, 22, .12), transparent 72%), radial-gradient(126px 28px at 14% 98%, rgba(32, 27, 22, .1), transparent 70%), radial-gradient(116px 24px at 86% 97%, rgba(32, 27, 22, .12), transparent 70%);--fabric: none;--grain: radial-gradient(circle at 18% 12%, rgba(32, 27, 22, .06), transparent 48%), radial-gradient(circle at 78% 86%, rgba(32, 27, 22, .05), transparent 44%), linear-gradient(180deg, rgba(252, 245, 232, .92), rgba(252, 245, 232, .85))}*{box-sizing:border-box}body{margin:0;min-width:320px;overflow-x:hidden;background:#efe6d6;background-image:var(--grain);background-attachment:fixed}#root{min-height:100vh;overflow-x:hidden}button,input,select{font:inherit}button{border:0;cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(157,112,70,.28);outline-offset:2px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(48px,8vw,92px);line-height:.94;letter-spacing:0;margin-bottom:22px}.loading{min-height:100vh;display:grid;place-items:center;font-size:42px;font-weight:700;color:var(--tea)}.eyebrow{margin:0 0 12px;color:var(--sage);text-transform:uppercase;letter-spacing:0;font-weight:700;font-size:13px}.subcopy{color:var(--muted);font-size:clamp(20px,2vw,28px);margin-bottom:32px}.topbar,.designer-head{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(18px,4vw,54px);border-bottom:1px solid rgba(142,112,82,.16);background:#fcf5e8d1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);position:sticky;top:0;z-index:20}.brand,.icon-text{background:none;color:var(--ink);font-weight:800;font-size:22px;display:inline-flex;align-items:center;gap:10px}nav{display:flex;gap:6px}nav button{background:none;color:var(--muted);padding:10px 12px;border-radius:10px;transition:color var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out),transform var(--dur-1) var(--ease-out)}nav button:hover{background:#fffaf2e6;color:var(--ink);transform:translateY(-1px)}nav button:active{transform:translateY(0)}@media(prefers-reduced-motion:reduce){:root{--dur-1: 1ms;--dur-2: 1ms;--dur-3: 1ms}*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}}.primary,.secondary,.icon-only{min-height:42px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform var(--dur-1) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out);will-change:transform}.primary{background:#2c2a22f0;color:#fcf5e8f5;padding:0 18px;font-weight:700;box-shadow:0 10px 25px #25272033}.primary:hover{transform:translateY(-1px);box-shadow:0 14px 32px #2527203d}.primary:active{transform:translateY(0);box-shadow:0 10px 25px #2527202e}.primary.small{min-height:38px}.secondary{background:#fcf5e8e0;color:var(--ink);border:1px solid rgba(32,27,22,.18);padding:0 16px}.secondary:hover,.icon-only:hover{transform:translateY(-1px);border-color:#9d704652;box-shadow:0 12px 26px #342c241a}.secondary:active,.icon-only:active{transform:translateY(0);box-shadow:none}.danger,.danger-action{color:#fffaf2;background:#8f3f33;border-color:#8f3f33}.danger-action{box-shadow:none}.icon-only{width:42px;background:#fcf5e8e0;color:var(--ink);border:1px solid rgba(32,27,22,.18)}.hero-actions,.designer-actions,.bottom-actions{display:flex;gap:10px;flex-wrap:wrap}.bracelet{width:460px;height:460px;position:relative;display:grid;place-items:center}.ring-shadow{position:absolute;width:calc(var(--ring) * 2 + 58px);height:calc(var(--ring) * 2 + 58px);border-radius:50%;border:1px solid rgba(113,131,110,.18);box-shadow:inset 0 0 80px #a6784d1f}.ring-thread{position:absolute;width:calc(var(--ring) * 2 + 6px);height:calc(var(--ring) * 2 + 6px);border-radius:50%;border:4px solid rgba(172,146,112,.82);box-shadow:0 0 0 1px #fffaf2b3,inset 0 0 0 1px #6e563a2e;opacity:.9}.preview-bead{position:absolute;border-radius:50%;background:none;padding:0;filter:drop-shadow(0 6px 8px rgba(42,32,22,.22));transition:transform var(--dur-2) var(--ease-out),filter var(--dur-2) var(--ease-out);will-change:transform;animation:bead-in var(--dur-2) var(--ease-out)}.preview-bead img{width:100%;height:100%;object-fit:contain;display:block;-webkit-clip-path:circle(48% at 50% 50%);clip-path:circle(48% at 50% 50%)}.preview-bead img[src*="/beads/CZ001/"]{-webkit-clip-path:circle(46.5% at 50% 50%);clip-path:circle(46.5% at 50% 50%);-webkit-mask-image:radial-gradient(circle at 50% 50%,#000 60%,transparent 63%);mask-image:radial-gradient(circle at 50% 50%,#000 60%,transparent 63%);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%}.preview-bead.selected{outline:3px solid #d7a84e;outline-offset:3px}.preview-bead:hover{transform:scale(1.03);filter:drop-shadow(0 10px 16px rgba(42,32,22,.24))}.preview-bead:active{transform:scale(1.015)}@keyframes bead-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.remove-bead{position:absolute;top:-4px;right:-4px;width:19px;height:19px;display:grid;place-items:center;border-radius:50%;background:#232822e6;color:#fffaf2;border:1px solid rgba(255,250,242,.9);opacity:0;pointer-events:none;transform:scale(.86);transition:opacity .16s ease,transform .16s ease}.preview-bead.selected .remove-bead,.remove-bead:focus-visible{opacity:1;pointer-events:auto;transform:scale(1)}.empty-ring{color:var(--muted)}.hero{min-height:calc(100vh - 72px);display:grid;grid-template-columns:minmax(340px,.9fr) minmax(360px,1.1fr);align-items:center;gap:clamp(20px,4vw,72px);padding:clamp(28px,5vw,72px);overflow:hidden}.hero-media{min-height:520px;display:grid;place-items:center;background:radial-gradient(circle at 50% 42%,rgba(143,91,42,.16),transparent 56%)}.hero-copy{max-width:720px}.band{padding:clamp(42px,7vw,88px) clamp(18px,5vw,72px)}.how{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;background:var(--paper);border-radius:16px;border:1px solid rgba(64,44,24,.08);position:relative;box-shadow:0 18px 40px #2c1c1014,inset 0 1px #fffcf5b8}.how:before{content:"";position:absolute;inset:-2px;pointer-events:none;border-radius:inherit;background-image:var(--ink-bleed);background-repeat:no-repeat;opacity:.32;filter:blur(10px)}.how>*{position:relative;z-index:1}.how article{padding:8px 0}.how span{display:block;width:34px;height:3px;background:var(--clay);margin-bottom:22px}.how h2,.split h2,.mystic h2{font-size:clamp(28px,4vw,48px);line-height:1.04;letter-spacing:0}.how p,.value p,.mystic p,.selected-detail p,.muted{color:var(--muted);line-height:1.5}.split{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(360px,1.2fr);gap:42px;align-items:start}.value-grid{display:grid;gap:14px}.value{display:grid;grid-template-columns:42px 1fr;gap:0 16px;align-items:start;padding:18px 0;border-bottom:1px solid rgba(32,27,22,.14)}.value div{grid-row:span 2;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#56644e29;color:#2c2a22e6}.value h3{margin-bottom:4px}.mystic{display:grid;grid-template-columns:64px 1fr auto;align-items:center;gap:22px;background:#2c2a22f0;color:#fcf5e8f5}.mystic>svg{width:52px;height:52px;color:#e0c08d}.designer{height:100vh;height:100dvh;background:#efe6d6;background-image:var(--grain);display:flex;flex-direction:column;overflow:hidden}.designer-grid{display:grid;grid-template-columns:360px minmax(420px,1fr) 330px;gap:16px;padding:16px;flex:1;min-height:0;overflow:hidden}.library,.controls,.stage{background:var(--paper);border-radius:14px;box-shadow:var(--shadow);min-height:0;border:1px solid rgba(64,44,24,.08);position:relative;transition:box-shadow var(--dur-3) var(--ease-out),transform var(--dur-3) var(--ease-out)}.stage{background-image:var(--fabric),var(--grain);background-size:720px auto,auto;background-repeat:repeat,no-repeat;background-position:center,center}.library,.controls{padding:18px;display:flex;flex-direction:column;box-shadow:0 18px 38px #2c1c1014,inset 0 1px #fffcf5c7}.stage:before{content:"";position:absolute;inset:-2px;pointer-events:none;border-radius:inherit;background-image:var(--ink-bleed);background-repeat:no-repeat;opacity:.46;filter:blur(10px)}.stage:after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 0 1px #402c180f,inset 0 1px #fffaf285}.stage>*{position:relative;z-index:1}.library-layout{display:grid;grid-template-columns:92px minmax(0,1fr);gap:14px;flex:1;min-height:0}.library-sidebar{display:flex;flex-direction:column;gap:10px;min-height:0}.library-eyebrow{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.library-groups{display:grid;gap:8px}.library-group{min-height:54px;padding:10px 12px;border-radius:16px;border:1px solid rgba(32,27,22,.2);background:#fcf5e8bd;color:var(--ink);text-align:left;font-weight:700;transition:background .18s ease,color .18s ease,border-color .18s ease}.library-group.active{background:#2c2a22eb;border-color:#2c2a22eb;color:#fcf5e8f2}.library-main{display:flex;flex-direction:column;gap:12px;min-height:0;position:relative}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-title h1,.section-title h2{font-size:18px;line-height:1.2;margin-bottom:14px}.section-title span{color:var(--muted)}.search{height:42px;display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid rgba(32,27,22,.18);border-radius:8px;background:#fcf5e8e0;transition:border-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.search:focus-within{border-color:#9d70466b;box-shadow:0 12px 26px #342c241f}.search input{border:0;outline:0;width:100%;background:transparent}.library-subfilters{display:grid;gap:10px}.library-subfilters-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.library-subfilters-head strong{font-size:14px}.library-subfilters-head small{color:var(--muted)}.subfilter-list{display:flex;flex-wrap:wrap;gap:8px}.subfilter-chip{min-height:34px;padding:6px 12px;border-radius:999px;border:1px solid rgba(32,27,22,.2);background:#fcf5e8d1;color:var(--ink);font-size:12px;transition:transform var(--dur-1) var(--ease-out),background var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out);will-change:transform}.subfilter-chip:hover{transform:translateY(-1px);box-shadow:0 10px 20px #342c241a}.subfilter-chip:active{transform:translateY(0);box-shadow:none}.subfilter-chip.active{background:#56644e29;border-color:#2c2a22b3;color:#2c2a22eb}.bead-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;flex:1;min-height:0;overflow:auto;padding-right:4px;align-content:start;align-items:start;grid-auto-rows:max-content}.bead-card{min-width:0;background:#fcf5e8e6;border-radius:14px;border:1px solid rgba(64,44,24,.08);padding:10px;text-align:left;display:grid;gap:8px;align-self:start;overflow:hidden;transition:transform var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out);will-change:transform}.bead-card:hover{transform:translateY(-2px);box-shadow:0 16px 30px #342c241f}.bead-card:active{transform:translateY(-1px);box-shadow:0 12px 22px #342c241a}.bead-card-main{padding:0;border:0;background:transparent;text-align:left;display:grid;gap:8px;justify-items:center}.bead-card-main img{width:72px;height:72px;object-fit:contain;justify-self:center;-webkit-clip-path:circle(48% at 50% 50%);clip-path:circle(48% at 50% 50%);transition:transform var(--dur-2) var(--ease-out)}.bead-card:hover .bead-card-main img{transform:scale(1.04)}.bead-card-main img[src*="/beads/CZ001/"],.selected-detail img[src*="/beads/CZ001/"]{-webkit-clip-path:circle(46.5% at 50% 50%);clip-path:circle(46.5% at 50% 50%);-webkit-mask-image:radial-gradient(circle at 50% 50%,#000 60%,transparent 63%);mask-image:radial-gradient(circle at 50% 50%,#000 60%,transparent 63%);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%}.bead-card-main strong{display:block;font-size:13px;line-height:1.25;min-height:32px;text-align:center}.bead-card-main small{color:var(--muted);display:block;margin-top:4px;text-align:center}.bead-size{border:1px solid #eadfce;background:#fffaf2;border-radius:999px;padding:4px 8px;font-size:12px;transition:transform var(--dur-1) var(--ease-out),border-color var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out)}.bead-size:hover{transform:translateY(-1px)}.bead-size:active{transform:translateY(0)}.bead-size.active{border-color:var(--pine);background:#eaf3ef}.bead-popover{position:fixed;width:min(320px,calc(100vw - 24px));max-height:calc(100vh - 24px);background:#fffaf2fa;border:1px solid #e3d7c7;border-radius:14px;box-shadow:0 18px 45px #342c2438;padding:14px;display:grid;gap:12px;z-index:40;animation:popover-in var(--dur-2) var(--ease-out)}@keyframes popover-in{0%{opacity:0;transform:translateY(6px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.bead-popover img{width:100%;height:160px;object-fit:cover;border-radius:10px;justify-self:center;background:#f3efe7}.bead-popover-body strong{display:block;font-size:14px;margin-bottom:8px}.bead-popover-body small{display:block;color:var(--muted);margin-bottom:10px}.bead-popover-body p{margin:0;font-size:12px;line-height:1.5;color:var(--muted);max-height:96px;overflow:auto}.bead-popover-sizes{display:flex;flex-wrap:wrap;gap:8px}.bead-popover-action{min-height:40px;border-radius:10px;background:var(--pine);color:#fffaf2;font-weight:700}@media(hover:none){.bead-popover{display:none}}.stage{display:grid;grid-template-rows:auto 1fr auto;place-items:center;padding:20px;overflow:hidden}.stage-top{justify-self:stretch}.stage-top h2{font-size:18px}.status{justify-self:stretch;display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.status span{background:#e7dfd1;color:#584c40;border-radius:999px;padding:8px 12px;font-size:13px}.controls{gap:14px;overflow:auto}.panel{border-bottom:1px solid var(--line);padding-bottom:14px}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:8px}.segmented button{min-height:58px;border-radius:8px;border:1px solid var(--line);background:#fff;font-weight:700}.segmented button.active{background:var(--pine);color:#fffaf2}.segmented small{display:block;font-weight:400;font-size:11px;margin-top:3px}.summary p{color:var(--muted);margin-bottom:4px}.summary strong{font-size:32px}.progress{height:8px;background:#eadfce;border-radius:999px;overflow:hidden;margin-top:14px}.progress span{display:block;height:100%;background:var(--sage)}.selected-detail img{width:86px;height:86px;object-fit:contain;-webkit-clip-path:circle(48% at 50% 50%);clip-path:circle(48% at 50% 50%)}.selected-detail strong{display:block;margin:6px 0}.selected-meta{display:block;color:var(--muted);margin-bottom:10px}.selected-sizes{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.selected-sizes .bead-size:disabled{opacity:.45;cursor:not-allowed}.bottom-actions{margin-top:auto}.modal-backdrop{position:fixed;inset:0;background:#2e2b2657;display:grid;place-items:center;z-index:50;padding:20px;animation:backdrop-in var(--dur-2) var(--ease-out)}.modal{width:min(520px,100%);background:var(--paper);border-radius:14px;border:1px solid rgba(64,44,24,.08);padding:28px;box-shadow:var(--shadow);animation:modal-in var(--dur-2) var(--ease-out);position:relative;box-shadow:0 20px 48px #2c1c1024,inset 0 1px #fffcf5b3}.modal:before{content:"";position:absolute;inset:-2px;pointer-events:none;border-radius:inherit;background-image:var(--ink-bleed);background-repeat:no-repeat;opacity:.3;filter:blur(10px)}.modal>*{position:relative;z-index:1}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.modal svg{color:var(--tea);width:44px;height:44px}.modal h2{font-size:28px;line-height:1.12;margin:16px 0 24px}.confirm-modal h2{margin-bottom:10px}.confirm-modal p{color:var(--muted);line-height:1.5;margin-bottom:22px}.modal div{display:flex;gap:10px;flex-wrap:wrap}@media(max-width:1100px){.designer{height:100vh;height:100dvh;overflow:hidden}.hero,.split,.designer-grid{grid-template-columns:1fr}.designer-grid{overflow:auto;grid-auto-rows:max-content;align-content:start}.library{order:2}.stage{order:1;min-height:560px}.controls{order:3}.bead-list{grid-template-columns:repeat(3,1fr);max-height:none;overflow:visible}.controls{overflow:visible}}@media(max-width:720px){.topbar,.designer-head{min-height:64px;height:auto;padding:10px 16px;gap:10px}.brand,.icon-text{font-size:18px}nav{display:none}.hero{min-height:auto;gap:8px;padding:18px 16px 32px;overflow:visible}.hero-media{min-height:280px;padding:4px 0 0}.hero-copy h1{font-size:clamp(46px,14vw,62px);margin-bottom:14px}.subcopy{font-size:18px;margin-bottom:20px}.hero-actions{flex-direction:column}.hero-actions>button{width:100%}.how,.mystic{grid-template-columns:1fr}.band{padding:32px 16px}.designer-grid{padding:12px;gap:12px}.library-layout{grid-template-columns:1fr}.library-sidebar{gap:8px}.library-groups{display:flex;overflow-x:auto;padding-bottom:2px}.library-group{min-width:110px}.bead-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;max-height:none}.bead-card{width:auto;flex:initial}.bracelet{width:min(280px,calc(100vw - 56px));height:min(280px,calc(100vw - 56px));transform:none}.stage{min-height:auto;padding:16px 12px;gap:12px}.designer-head{align-items:flex-start}.designer-head .icon-text{width:100%}.designer-actions{width:100%;display:grid;grid-template-columns:42px repeat(2,minmax(0,1fr))}.designer-actions .secondary,.designer-actions .primary{min-width:0;padding-inline:10px}.library,.controls{padding:16px}.section-title h1,.section-title h2{margin-bottom:10px}.status{gap:8px}.status span{font-size:12px;padding:7px 10px}.selected-detail img{width:72px;height:72px}.bottom-actions>button{width:100%}.mystic>svg{width:42px;height:42px}}
