:root{--font-headline: "Newsreader", serif;--font-body: "Plus Jakarta Sans", system-ui, sans-serif}:root{--bg-primary: #fff9e7;--bg-secondary: #faf4de;--bg-tertiary: #f4eed8;--bg-elevated: #eee8d3;--bg-interactive: #e8e3cd;--bg-lowest: #ffffff;--text-primary: #1e1c0f;--text-secondary: rgba(30, 28, 15, .7);--text-muted: rgba(30, 28, 15, .45);--text-on-primary: #ffffff;--accent-primary: #081f0b;--accent-container: #1d341e;--accent-soft: #839d80;--accent-fixed: #ceeac9;--accent-fixed-dim: #b2ceae;--secondary: #5c630c;--secondary-container: #e0ea87;--tertiary-container: #610039;--on-tertiary-container: #e56fa4;--border-color: rgba(195, 200, 191, .15);--border-focus: #081f0b;--outline: #737971;--outline-variant: #c3c8bf;--shadow-sm: 0 2px 8px rgba(30, 28, 15, .04);--shadow-md: 0 4px 20px rgba(30, 28, 15, .06);--shadow-lg: 0 8px 40px rgba(30, 28, 15, .06);--success: #4ade80;--warning: #facc15;--error: #ba1a1a;--error-container: #ffdad6;--info: #38bdf8;--radius-sm: .5rem;--radius-md: 1rem;--radius-lg: 1.5rem;--radius-pill: 9999px;--surface-tint: #4c654b;--glass-bg: rgba(255, 249, 231, .8);--glass-blur: 20px;--canvas-bg: #faf4de;--grid-minor: rgba(30, 28, 15, .04);--grid-major: rgba(30, 28, 15, .1);--ruler-bg: #f4eed8;--ruler-text: rgba(30, 28, 15, .5);--boundary-exterior: rgba(30, 28, 15, .08)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-primary);color:var(--text-primary)}::selection{background-color:var(--accent-fixed);color:var(--accent-primary)}*:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}*:focus:not(:focus-visible){outline:none}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--outline-variant);border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:var(--outline)}a[href="#main-content"]{position:absolute;top:-40px;left:16px;z-index:9999;padding:8px 16px;background:var(--accent-primary);color:var(--text-on-primary);font-family:var(--font-body);font-weight:600;text-decoration:none;border-radius:var(--radius-pill);transition:top .2s ease}a[href="#main-content"]:focus{top:8px!important}.canvas-touch-container{touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes hintFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:.4}50%{opacity:.7}}.cl-footer>div:last-child{display:none!important}.glass{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur))}.btn-primary{background:linear-gradient(135deg,#081f0b,#1d341e);color:#fff;border:none;border-radius:var(--radius-pill);font-family:var(--font-body);font-weight:600;cursor:pointer;transition:opacity .2s ease,transform .2s ease}.btn-primary:hover{opacity:.9;transform:translateY(-1px)}.font-headline{font-family:var(--font-headline)}.font-body{font-family:var(--font-body)}:root{--fw-bg: #ffffff;--fw-border: #e5e7eb;--fw-text: #111827;--fw-text-muted: #6b7280;--fw-accent: #6366f1;--fw-accent-hover: #4f46e5;--fw-danger: #ef4444;--fw-success: #10b981;--fw-warning: #f59e0b;--fw-shadow: 0 20px 60px rgba(0, 0, 0, .15);--fw-radius: 12px}#fw-button{position:fixed;bottom:24px;right:24px;width:56px;height:56px;border-radius:50%;background:var(--fw-accent);color:#fff;border:none;cursor:pointer;box-shadow:0 4px 14px #6366f173;display:flex;align-items:center;justify-content:center;z-index:99998;transition:transform .2s,box-shadow .2s;animation:fw-pulse 2s ease-in-out 3}#fw-button:hover{transform:scale(1.1);box-shadow:0 6px 20px #6366f18c}#fw-button svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}@keyframes fw-pulse{0%,to{box-shadow:0 4px 14px #6366f173}50%{box-shadow:0 4px 28px #6366f1b3}}#fw-button.fw-hidden{display:none}#fw-overlay{position:fixed;inset:0;z-index:100000;background:#fff;display:none;flex-direction:column}#fw-overlay.fw-open{display:flex}#fw-main-area{display:flex;flex:1;min-height:0}#fw-left-section{display:flex;flex-direction:column;flex:1;min-width:0}#fw-toolbar-bar{height:48px;flex-shrink:0;background:#1a1d2ef2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;padding:0 12px;gap:4px}.fw-toolbar-sep{width:1px;height:26px;background:#ffffff26;margin:0 8px}.fw-tool-btn{width:38px;height:38px;border-radius:8px;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#ffffffb3;transition:all .15s;position:relative}.fw-tool-btn:hover{background:#ffffff1a;color:#fff}.fw-tool-btn.active{background:var(--fw-accent);color:#fff}.fw-tool-btn svg{width:20px;height:20px}.fw-tool-btn[title]:after{content:attr(title);position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:4px;font-size:10px;background:#111;color:#fff;padding:2px 6px;border-radius:4px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;z-index:10}.fw-tool-btn:hover[title]:after{opacity:1}.fw-color-btn{width:24px;height:24px;border-radius:50%;border:2px solid rgba(255,255,255,.25);cursor:pointer;transition:transform .15s,border-color .15s}.fw-color-btn:hover{transform:scale(1.15)}.fw-color-btn.active{border-color:#fff;transform:scale(1.15)}#fw-canvas-area{flex:1;overflow:hidden;background:#f0f1f3;display:flex;align-items:center;justify-content:center;position:relative}#fw-form-panel{width:320px;flex-shrink:0;background:var(--fw-bg);border-left:1px solid var(--fw-border);display:flex;flex-direction:column;overflow-y:auto}.fw-form-panel-header{padding:16px 16px 12px;border-bottom:1px solid var(--fw-border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.fw-form-panel-title{font-family:Inter,sans-serif;font-size:15px;font-weight:700;color:var(--fw-text)}.fw-close-btn{width:30px;height:30px;border-radius:8px;border:1px solid var(--fw-border);background:var(--fw-bg);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--fw-text-muted);transition:background .15s,color .15s}.fw-close-btn:hover{background:#f3f4f6;color:var(--fw-text)}.fw-form-panel-body{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:12px}.fw-form-group{display:flex;flex-direction:column;gap:4px}.fw-form-row{display:flex;gap:10px}.fw-form-half{flex:1}.fw-form-label{font-family:Inter,sans-serif;font-size:12px;font-weight:600;color:var(--fw-text)}.fw-form-input,.fw-form-textarea,.fw-form-select{font-family:Inter,sans-serif;font-size:13px;padding:8px 10px;border:1px solid var(--fw-border);border-radius:8px;background:var(--fw-bg);color:var(--fw-text);transition:border-color .15s,box-shadow .15s;width:100%;box-sizing:border-box}.fw-form-input:focus:not(:focus-visible),.fw-form-textarea:focus:not(:focus-visible),.fw-form-select:focus:not(:focus-visible){outline:none}.fw-form-input:focus,.fw-form-textarea:focus,.fw-form-select:focus{border-color:var(--fw-accent);box-shadow:0 0 0 3px #6366f11f}.fw-form-textarea{resize:vertical;min-height:72px}.fw-form-error{font-size:12px;color:var(--fw-danger);padding:0 0 4px}.fw-separator{height:1px;background:var(--fw-border);margin:4px 0}.fw-info-heading{font-family:Inter,sans-serif;font-size:11px;font-weight:700;color:var(--fw-text-muted);text-transform:uppercase;letter-spacing:.04em}.fw-info-block{display:flex;flex-direction:column;gap:4px}.fw-info-row{display:flex;align-items:baseline;gap:6px;font-family:Inter,sans-serif;font-size:11px;color:var(--fw-text-muted);line-height:1.4}.fw-info-label{font-weight:600;flex-shrink:0;min-width:60px}.fw-info-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fw-form-panel-footer{padding:12px 16px;border-top:1px solid var(--fw-border);flex-shrink:0}.fw-btn{font-family:Inter,sans-serif;font-size:14px;font-weight:600;padding:10px 20px;border-radius:8px;border:none;cursor:pointer;transition:background .15s,opacity .15s;display:flex;align-items:center;justify-content:center;gap:6px;width:100%}.fw-btn:disabled{opacity:.55;cursor:not-allowed}.fw-btn-primary{background:var(--fw-accent);color:#fff}.fw-btn-primary:hover:not(:disabled){background:var(--fw-accent-hover)}.fw-loading-overlay{position:fixed;inset:0;background:#ffffffd9;z-index:100001;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;opacity:0;pointer-events:none;transition:opacity .2s}.fw-loading-overlay.fw-visible{opacity:1;pointer-events:auto}.fw-spinner{width:40px;height:40px;border:3px solid var(--fw-border);border-top-color:var(--fw-accent);border-radius:50%;animation:fw-spin .7s linear infinite}.fw-spinner-small{width:18px;height:18px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:fw-spin .7s linear infinite}@keyframes fw-spin{to{transform:rotate(360deg)}}.fw-loading-text{font-family:Inter,sans-serif;font-size:14px;color:var(--fw-text-muted)}.fw-toast{position:absolute;top:0;left:0;right:0;z-index:10;background:var(--fw-success);color:#fff;font-family:Inter,sans-serif;font-size:14px;font-weight:600;padding:12px 20px;text-align:center;animation:fw-toast-in .3s ease}.fw-toast a{color:#fff;text-decoration:underline;margin-left:8px}@keyframes fw-toast-in{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.consent-banner{--consent-bg: #1B4332;--consent-text: #ffffff;--consent-text-muted: rgba(255, 255, 255, .7);--consent-primary: #e2ff00;--consent-primary-text: #0a1a14;--consent-secondary: transparent;--consent-secondary-text: #ffffff;--consent-border: #556100;--consent-font-headline: "Epilogue", system-ui, sans-serif;--consent-font-body: "Manrope", system-ui, sans-serif;position:fixed;bottom:0;left:0;right:0;z-index:9999;background-color:var(--consent-bg);border-top:4px solid var(--consent-border);box-shadow:0 -4px 16px #0000004d,0 -1px 4px #00000026;padding:20px 24px;font-family:var(--consent-font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.consent-banner-inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:24px}.consent-banner-text{color:var(--consent-text-muted);font-size:.9375rem;line-height:1.6;margin:0;flex:1;text-wrap:pretty}.consent-banner-link{color:var(--consent-primary);text-decoration:underline;text-underline-offset:2px;font-weight:600;transition-property:color,opacity;transition-duration:.15s;transition-timing-function:ease}.consent-banner-link:hover{color:#fff}.consent-banner-actions{display:flex;gap:12px;flex-shrink:0}.consent-banner-btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 24px;min-height:44px;font-family:var(--consent-font-headline);font-weight:900;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em;border:none;border-radius:0;cursor:pointer;transition-property:background-color,color,transform,box-shadow;transition-duration:.2s;transition-timing-function:ease}.consent-banner-btn:focus-visible{outline:2px solid var(--consent-primary);outline-offset:2px}.consent-banner-btn:active{transform:scale(.96)}.consent-banner-btn--primary{background-color:var(--consent-primary);color:var(--consent-primary-text);box-shadow:4px 4px 0 0 var(--consent-border)}.consent-banner-btn--primary:hover{background-color:#fff;transform:translate(-2px,-2px);box-shadow:6px 6px 0 0 var(--consent-border)}.consent-banner-btn--primary:active{transform:scale(.96);box-shadow:2px 2px 0 0 var(--consent-border)}.consent-banner-btn--secondary{background-color:var(--consent-secondary);color:var(--consent-secondary-text);border:2px solid var(--consent-border)}.consent-banner-btn--secondary:hover{border-color:var(--consent-primary);color:var(--consent-primary)}.consent-banner-link:focus-visible{outline:2px solid var(--consent-primary);outline-offset:2px}@media(max-width:600px){.consent-banner{padding:16px}.consent-banner-inner{flex-direction:column;align-items:stretch;gap:16px}.consent-banner-actions{flex-direction:column;gap:8px}.consent-banner-btn{width:100%}}@media(prefers-reduced-motion:reduce){.consent-banner-btn,.consent-banner-link{transition-duration:.01ms!important}.consent-banner-btn:hover,.consent-banner-btn:active,.consent-banner-btn--primary:hover,.consent-banner-btn--primary:active{transform:none}}
