.cw-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0006;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;justify-content:center;align-items:center;z-index:9999;animation:cw-fade-in .25s var(--ease-out) forwards}.cw-modal{background:#fff;color:#1e293b;width:90%;max-width:580px;border-radius:20px;padding:24px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a,0 0 0 1px #0000000d;display:flex;flex-direction:column;gap:20px;position:relative;animation:cw-slide-up .3s var(--ease-spring) forwards;max-height:90vh;overflow-y:auto}@keyframes cw-fade-in{0%{opacity:0}to{opacity:1}}@keyframes cw-slide-up{0%{transform:translateY(20px) scale(.95);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.cw-header{display:flex;justify-content:space-between;align-items:center}.cw-title-row{display:flex;align-items:center;gap:8px}.cw-dot{width:12px;height:12px;border-radius:50%;transition:background-color .2s ease}.cw-title{font-family:var(--font-body);font-weight:600;font-size:18px;color:#0f172a}.cw-close{background:none;border:none;font-size:18px;cursor:pointer;color:#64748b;padding:4px;display:flex;align-items:center;justify-content:center;transition:color .15s ease,transform .15s ease}.cw-close:hover{color:#0f172a;transform:scale(1.1)}.cw-preview{display:flex;align-items:center;gap:16px;padding:16px;border-radius:12px;border:1px solid rgba(0,0,0,.06);transition:background-color .25s ease}.cw-preview-circle{width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background-color .25s ease;box-shadow:0 4px 6px -1px #0000000d}.cw-preview-name{font-family:var(--font-display);font-size:22px;letter-spacing:1px;line-height:1;transition:color .25s ease}.cw-preview-sub{font-family:var(--font-body);font-size:12px;font-weight:500;transition:color .25s ease;opacity:.9}.cw-wheels{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.cw-wheel-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:12px;width:100%}.cw-wheel-label{font-size:14px;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.5px}.cw-canvas-wrap{position:relative;width:220px;height:220px}.cw-canvas{cursor:crosshair;border-radius:50%;display:block}.cw-divider{width:1px;background:#e2e8f0;align-self:stretch}.cw-sliders{width:100%;display:flex;flex-direction:column;gap:10px;margin-top:4px}.cw-slider-row{display:flex;align-items:center;gap:10px;font-size:13px;color:#475569}.cw-slider-lbl{width:16px;font-weight:600}.cw-range{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:6px;border-radius:3px;background:#e2e8f0;outline:none;transition:background .15s ease}.cw-range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--thumb, #058085);cursor:pointer;border:2px solid #ffffff;box-shadow:0 2px 4px #00000026;transition:transform .1s ease}.cw-range::-webkit-slider-thumb:hover{transform:scale(1.15)}.cw-range::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--thumb, #058085);cursor:pointer;border:2px solid #ffffff;box-shadow:0 2px 4px #00000026;transition:transform .1s ease}.cw-range::-moz-range-thumb:hover{transform:scale(1.15)}.cw-val{width:40px;text-align:right;font-family:monospace;color:#64748b}.cw-input-tabs{display:flex;align-items:center;gap:6px;width:100%;margin-top:6px}.cw-swatch{width:24px;height:24px;border-radius:6px;border:1px solid rgba(0,0,0,.08);transition:background-color .2s ease;flex-shrink:0}.cw-tab{font-family:var(--font-body);font-size:11px;font-weight:600;letter-spacing:.04em;padding:3px 9px;border-radius:6px;border:1px solid #cbd5e1;background:transparent;color:#94a3b8;cursor:pointer;transition:all .15s ease;line-height:1.6}.cw-tab:hover{color:#475569;border-color:#94a3b8}.cw-tab-active{background:var(--blue, #D41367);color:#fff;border-color:var(--blue, #D41367)}.cw-hex-input{font-family:monospace;font-size:13px;padding:7px 10px;border:1px solid #cbd5e1;border-radius:8px;outline:none;color:#334155;transition:border-color .15s ease,box-shadow .15s ease;width:100%;margin-top:6px;box-sizing:border-box}.cw-hex-full{width:100%}.cw-hex-input:focus{border-color:var(--blue, #D41367);box-shadow:0 0 0 2px color-mix(in srgb,var(--blue, #D41367) 15%,transparent)}.cw-rgb-row{display:flex;gap:8px;width:100%;margin-top:6px}.cw-rgb-field{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1}.cw-rgb-lbl{font-size:11px;font-weight:600;color:#94a3b8;letter-spacing:.04em}.cw-rgb-input{width:100%;font-family:monospace;font-size:13px;text-align:center;padding:6px 4px;border:1px solid #cbd5e1;border-radius:8px;outline:none;color:#334155;transition:border-color .15s ease,box-shadow .15s ease;-moz-appearance:textfield}.cw-rgb-input::-webkit-inner-spin-button,.cw-rgb-input::-webkit-outer-spin-button{opacity:0;width:0}.cw-rgb-input:focus{border-color:var(--blue, #D41367);box-shadow:0 0 0 2px color-mix(in srgb,var(--blue, #D41367) 15%,transparent)}.cw-actions{display:flex;justify-content:flex-end;gap:12px;border-top:1px solid #f1f5f9;padding-top:16px;margin-top:4px}.cw-btn{font-family:var(--font-body);font-weight:600;font-size:14px;padding:8px 16px;border-radius:10px;cursor:pointer;transition:all .2s ease;border:none}.cw-ghost{background:transparent;color:#64748b}.cw-ghost:hover{background:#f1f5f9;color:#1e293b}.cw-primary{box-shadow:0 4px 6px -1px #00000014}.cw-primary:hover{filter:brightness(.95);transform:translateY(-1px);box-shadow:0 6px 8px -1px #0000001f}.cw-primary:active{transform:translateY(0)}.cw-hint{font-size:11px;color:#94a3b8;text-align:center;margin:0}@media (max-width: 560px){.cw-modal{padding:16px;gap:16px}.cw-wheels{flex-direction:column;align-items:center;gap:24px}.cw-divider{width:100%;height:1px}.cw-preview{gap:12px;padding:12px}.cw-preview-name{font-size:18px}}.loading{background:var(--bg);width:100vw;height:100dvh;display:flex;align-items:center;justify-content:center;flex-direction:column;overflow:hidden;position:relative}.loading:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 60% 60% at 50% 50%,color-mix(in srgb,var(--blue) 5%,transparent) 0%,transparent 70%);pointer-events:none}.loading-logo-wrap{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:28px}.loading-logo-circle{width:140px;height:140px;border-radius:50%;background:transparent;display:flex;align-items:center;justify-content:center;position:relative;animation:loading-drop .7s var(--ease-spring) .1s both}.logo-color-flood{flood-color:var(--blue)}.loading-logo{width:72%;height:72%;object-fit:contain;display:block;filter:url(#logo-color-filter)}@keyframes loading-drop{0%{opacity:0;transform:translateY(-60px) scale(.8)}60%{transform:translateY(6px) scale(1.02)}to{opacity:1;transform:translateY(0) scale(1)}}.loading-rings{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}.loading-ring{position:absolute;top:50%;left:50%;width:140px;height:140px;transform:translate(-50%,-50%);border-radius:50%;border:2px solid transparent;animation:loading-ripple 2.4s var(--ease-out) var(--rd, 0s) infinite}.loading-ring:nth-child(1){--rd: .8s;border-color:color-mix(in srgb,var(--blue) 50%,transparent)}.loading-ring:nth-child(2){--rd: 1.2s;border-color:color-mix(in srgb,var(--blue) 35%,transparent)}.loading-ring:nth-child(3){--rd: 1.6s;border-color:color-mix(in srgb,var(--blue) 20%,transparent)}.loading-ring:nth-child(4){--rd: 2s;border-color:color-mix(in srgb,var(--blue) 10%,transparent)}@keyframes loading-ripple{0%{width:140px;height:140px;opacity:1}to{width:420px;height:420px;opacity:0}}.loading-text{text-align:center;animation:loading-text-in .8s var(--ease-out) .6s both}.loading-name{font-family:var(--font-display);font-size:clamp(28px,4vw,44px);letter-spacing:.18em;color:var(--blue);line-height:1}.loading-chapter{font-family:var(--font-body);font-size:12px;font-weight:400;letter-spacing:.12em;color:var(--ink-muted);margin-top:6px;text-transform:uppercase}@keyframes loading-text-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.wispr-wrapper{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:1;display:flex;align-items:center;justify-content:center;overflow:hidden;pointer-events:none}.wispr-svg{position:absolute;width:100%;height:100%;max-width:100%;max-height:100%;pointer-events:none}.wispr-svg circle{pointer-events:auto}.edit-button{position:absolute;top:24px;right:24px;z-index:10;padding:8px 18px;border-radius:9999px;background:var(--blue);color:var(--bg);font-family:var(--font-body);font-size:13px;font-weight:500;border:none;cursor:pointer;box-shadow:0 4px 12px color-mix(in srgb,var(--blue) 15%,transparent);transition:opacity .2s ease,transform .2s ease;pointer-events:auto}.edit-button:hover{opacity:.9;transform:scale(1.02)}.edit-button:active{transform:scale(.98)}.edit-button.editing{background:var(--bg);color:var(--blue);border:1px solid var(--blue)}.wispr-wrapper.editing{z-index:3;pointer-events:auto}.edit-controls-bar{position:absolute;top:24px;right:24px;z-index:10;display:flex;gap:8px;pointer-events:auto}.control-btn{padding:8px 18px;border-radius:9999px;font-family:var(--font-body);font-size:13px;font-weight:500;border:none;cursor:pointer;box-shadow:0 4px 12px color-mix(in srgb,var(--blue) 15%,transparent);transition:opacity .2s ease,transform .2s ease}.control-btn:hover:not(:disabled){opacity:.9;transform:scale(1.02)}.control-btn:active:not(:disabled){transform:scale(.98)}.control-btn:disabled{opacity:.4;cursor:not-allowed}.undo-btn,.reset-btn{background:var(--bg);color:var(--blue);border:1px solid var(--blue)}.done-btn{background:var(--blue);color:var(--bg)}.wispr-text{font-size:14px}@media (max-width: 768px){.wispr-wrapper{align-items:flex-end}.wispr-svg{width:150%;max-width:150%;left:50%;transform:translate(-50%);bottom:30px;height:auto;max-height:none}.wispr-text{font-size:26px}.loading-logo-wrap{transform:translateY(-45px)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--blue: #018081;--bg: #E1F9F4;--ink: #018081;--ink-muted: rgba(1, 128, 129, .55);--font-display: "Bebas Neue", "Arial Narrow", sans-serif;--font-body: "DM Sans", "Helvetica Neue", sans-serif;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1)}html,body,#root{width:100%;height:100%;min-height:100dvh}body{font-family:var(--font-body);font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
