:root{--font-display: "Sora", system-ui, sans-serif;--font-body: "Hanken Grotesk", system-ui, sans-serif;--bg: #fbf9f5;--surface: #ffffff;--ink: #1b1a18;--ink-soft: #6c685f;--line: rgba(27, 26, 24, .1);--accent: #ee552d;--accent-deep: #d23f1a;--accent-soft: #fde6dd;--pine: #2f6b5d;--pine-light: #6fb6a4;--dark: #17161b;--radius-sm: 8px;--radius: 14px;--radius-lg: 24px;--radius-pill: 999px;--shadow: 0 1px 2px rgba(27,26,24,.06), 0 12px 28px -18px rgba(27,26,24,.3);--shadow-lg: 0 2px 6px rgba(27,26,24,.08), 0 22px 44px -22px rgba(27,26,24,.38);--shadow-dark: 0 18px 40px -22px rgba(15,12,10,.7);--ease: cubic-bezier(.22, 1, .36, 1);--nav-h: 4.5rem}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--nav-h);-webkit-text-size-adjust:100%}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}body{margin:0;min-height:100vh;color:var(--ink);background:var(--bg);font-family:var(--font-body);font-size:clamp(1rem,.96rem + .2vw,1.08rem);line-height:1.62;-webkit-font-smoothing:antialiased}::selection{background:var(--accent);color:#fff}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}[hidden]{display:none!important}:where(a,button,input,textarea,.item,.chip,.socials a,.nav-toggle):focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.hero-content a:focus-visible,.nav:not(.scrolled) .nav-links a:focus-visible{outline-color:#fff}.skip-link{position:absolute;left:-999px;top:.5rem;z-index:100;background:var(--ink);color:#fff;padding:.6rem 1rem;border-radius:var(--radius-sm)}.skip-link:focus{left:.5rem}.wrap{width:100%;max-width:70rem;margin:0 auto;padding:0 clamp(1.25rem,5vw,2.5rem)}h1,h2,h3{font-family:var(--font-display);font-weight:700;letter-spacing:-.02em;line-height:1.1}.trail{display:block;width:100%;height:38px;opacity:.7;margin:.5rem 0 0}.nav{position:fixed;top:0;left:0;right:0;z-index:40;border-bottom:1px solid transparent;transition:background .3s var(--ease),border-color .3s var(--ease)}.nav.scrolled{background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(10px);border-bottom-color:var(--line)}.nav-inner{position:relative;display:flex;align-items:center;justify-content:space-between;padding:.9rem 0}.brand{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--font-display);font-weight:800;font-size:1.2rem;color:#fff;transition:color .3s var(--ease)}.nav.scrolled .brand{color:var(--ink)}.brand .dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--accent)}.nav-links{display:flex;align-items:center;gap:clamp(1rem,2.6vw,2rem);font-weight:600;font-size:.94rem}.nav-links a:not(.btn){color:#ffffffe6;transition:color .25s var(--ease)}.nav.scrolled .nav-links a:not(.btn){color:var(--ink-soft)}.nav-links a:not(.btn):hover{color:var(--accent)}.nav-links .btn{padding:.55rem 1.1rem}.nav-toggle{display:none;flex-direction:column;gap:5px;width:2.6rem;height:2.6rem;align-items:center;justify-content:center;background:none;border:0;cursor:pointer}.nav-toggle span{width:22px;height:2px;background:#fff;border-radius:2px;transition:transform .25s var(--ease),opacity .25s var(--ease),background .3s var(--ease)}.nav.scrolled .nav-toggle span{background:var(--ink)}.nav-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.nav-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}@media(max-width:680px){.nav-toggle{display:flex}.nav-links{position:absolute;top:calc(100% + .4rem);left:0;right:0;flex-direction:column;align-items:stretch;gap:.1rem;background:color-mix(in srgb,var(--bg) 97%,transparent);backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:var(--radius);padding:.8rem 1rem 1rem;box-shadow:var(--shadow);transform:translateY(-8px);opacity:0;pointer-events:none;transition:opacity .25s var(--ease),transform .25s var(--ease)}.nav-links.open{transform:none;opacity:1;pointer-events:auto}.nav-links a:not(.btn){display:block;color:var(--ink);padding:.65rem .3rem}.nav-links .btn{align-self:flex-start;margin-top:.5rem}}.btn{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-body);font-weight:700;font-size:.96rem;padding:.8rem 1.5rem;border-radius:var(--radius-pill);border:1.5px solid transparent;cursor:pointer;transition:transform .25s var(--ease),background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-deep);transform:translateY(-2px)}.btn-ghost-light{border-color:#ffffff73;color:#fff}.btn-ghost-light:hover{border-color:#fff;background:#ffffff1f;color:#fff;transform:translateY(-2px)}.btn-soft{background:var(--accent-soft);color:var(--accent-deep)}.btn-soft:hover{background:color-mix(in srgb,var(--accent-soft) 65%,var(--accent));color:var(--accent-deep);transform:translateY(-2px)}.btn-ghost{border-color:var(--line);color:var(--ink)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent-deep);transform:translateY(-2px)}.hero-banner{position:relative;min-height:min(84vh,760px);display:flex;align-items:center;overflow:hidden;background:#16110d}.hero-bg{position:absolute;inset:0 0 0 auto;width:54%;height:100%;object-fit:cover;object-position:64% 30%}.hero-scrim{position:absolute;inset:0;background:linear-gradient(90deg,#16110d 0% 44%,#16110d8c 60%,#16110d00 84%),linear-gradient(0deg,#16110d8c,#16110d00 42%)}.hero-content{position:relative;z-index:2;color:#fff;max-width:75vw;margin:0;padding:6rem clamp(1.5rem,5vw,3.5rem) clamp(2.5rem,7vh,4.5rem)}.eyebrow{display:inline-flex;align-items:center;gap:.55rem;font-weight:700;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:#fff;margin-bottom:1.1rem}.eyebrow:before{content:"";width:1.8rem;height:2px;background:var(--accent)}.hero-content h1{font-size:clamp(2.4rem,1.4rem + 4.6vw,4.4rem);margin:0 0 .9rem;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.5),0 2px 24px rgba(0,0,0,.5)}.hero-content .role,.hero-content .sub,.hero-content .cta,.hero-content .socials{max-width:44rem}.hero-content .role{font-family:var(--font-display);font-weight:600;font-size:clamp(1.05rem,1rem + .55vw,1.4rem);margin:0 0 1.1rem;color:#fffffff2}.hero-content .role b{color:var(--accent)}.hero-content .sub{font-size:clamp(1.02rem,.98rem + .4vw,1.18rem);line-height:1.6;color:#ffffffe0;max-width:44rem;margin:0 0 2rem}.hero-content .cta{display:flex;flex-wrap:wrap;gap:.8rem;margin-bottom:1.6rem}.socials{display:flex;gap:.6rem}.socials a{width:2.6rem;height:2.6rem;display:grid;place-items:center;border:1.5px solid rgba(255,255,255,.4);border-radius:50%;color:#fff;transition:all .25s var(--ease)}.socials a:hover{background:var(--accent);border-color:var(--accent);color:#fff;transform:translateY(-2px)}@media(max-width:820px){.hero-bg{width:100%;left:0;right:0;object-position:72% 22%}.hero-scrim{background:linear-gradient(90deg,#16110de6,#16110d8c 48%,#16110d1f 82%),linear-gradient(0deg,#16110db8,#16110d00 45%)}.hero-content{max-width:100%}}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;padding:2.2rem clamp(1.4rem,4vw,2.6rem);background:var(--dark);color:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-dark);margin:clamp(2.5rem,7vh,4.5rem) 0 clamp(3rem,8vh,5rem)}@media(max-width:640px){.stats{grid-template-columns:repeat(2,1fr);gap:1.6rem}}.stat{text-align:center}.stat .n{font-family:var(--font-display);font-weight:800;font-size:clamp(1.9rem,1.2rem + 2.4vw,2.8rem);color:var(--pine-light);line-height:1}.stat .n--accent{color:var(--accent);animation:pulse-inf 2.8s var(--ease) infinite}@keyframes pulse-inf{0%,to{opacity:1}50%{opacity:.55}}.stat .l{font-size:.85rem;color:#ffffffa8;margin-top:.5rem}section{padding:clamp(3rem,8vh,5.5rem) 0}.head{max-width:40rem;margin:0 0 2.6rem}.kick{font-weight:700;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-deep);margin:0 0 .7rem}.head h2{font-size:clamp(1.9rem,1.3rem + 2.5vw,2.9rem);margin:0}.head h2 em{font-style:normal;color:var(--accent)}.about{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,5vw,4rem);align-items:center}@media(max-width:820px){.about{grid-template-columns:1fr}}.about .photo2{aspect-ratio:4/4.4;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);position:relative}.about .photo2 img{width:100%;height:100%;object-fit:cover;object-position:50% 32%}.about h2{font-size:clamp(1.8rem,1.2rem + 2.4vw,2.6rem);margin:0 0 1.2rem}.about h2 em{font-style:normal;color:var(--pine)}.about p{color:var(--ink);margin:0 0 1.1rem;line-height:1.6}.about p b{font-weight:700}.facts{list-style:none;padding:0;margin:1.4rem 0 1.6rem;display:grid;grid-template-columns:1fr 1fr;gap:.7rem 1.5rem}@media(max-width:480px){.facts{grid-template-columns:1fr}}.facts li{display:flex;gap:.6rem;font-size:.96rem;color:var(--ink-soft)}.facts b{color:var(--ink);font-family:var(--font-display);font-weight:600;min-width:5.5rem}.facts a{color:var(--ink);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--accent) 45%,transparent);text-underline-offset:3px;transition:color .25s var(--ease),text-decoration-color .25s var(--ease)}.facts a:hover{color:var(--accent-deep);text-decoration-color:var(--accent-deep)}.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:.4rem 0 1.8rem}.chip{font-size:.85rem;font-weight:600;color:var(--ink-soft);background:var(--surface);border:1px solid var(--line);padding:.35rem .85rem;border-radius:var(--radius-pill);transition:border-color .25s var(--ease),color .25s var(--ease)}.chip:hover{border-color:var(--pine);color:var(--pine)}.timeline{list-style:none;margin:0;padding:0;max-width:50rem}.tl-item{position:relative;padding:0 0 1.9rem 1.9rem;border-left:2px solid var(--line)}.tl-item:last-child{padding-bottom:0}.tl-item:before{content:"";position:absolute;left:-7px;top:.25rem;width:12px;height:12px;border-radius:50%;background:var(--pine);box-shadow:0 0 0 4px var(--bg)}.tl-item:first-child:before{background:var(--accent)}.tl-period{display:block;font-weight:700;font-size:.8rem;letter-spacing:.04em;color:var(--accent-deep);margin-bottom:.25rem}.tl-role{font-size:1.1rem;margin:0 0 .3rem}.tl-org{color:var(--ink-soft);font-weight:600}.tl-item p{color:var(--ink-soft);margin:0;font-size:.96rem}.services{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1.2rem}.svc{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.8rem;box-shadow:var(--shadow);transition:transform .3s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease)}.svc:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--pine) 35%,var(--line));box-shadow:var(--shadow-lg)}.svc .ic{width:3rem;height:3rem;display:grid;place-items:center;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--pine) 12%,var(--surface));color:var(--pine);margin-bottom:1.1rem}.svc h3{font-size:1.2rem;margin:0 0 .5rem}.svc p{color:var(--ink-soft);font-size:.96rem;margin:0}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1.2rem}.item{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);position:relative;background:var(--surface);transition:transform .35s var(--ease),border-color .35s var(--ease),box-shadow .35s var(--ease)}.item:hover{transform:translateY(-5px);border-color:color-mix(in srgb,var(--accent) 40%,var(--line));box-shadow:var(--shadow-lg)}.item--static{cursor:default;max-width:34rem}.item--static:hover{transform:none;border-color:var(--line);box-shadow:var(--shadow)}.item .thumb{aspect-ratio:16/10;display:grid;place-items:center;position:relative;overflow:hidden;border-bottom:1px solid var(--line)}.thumb--gradient{background:linear-gradient(150deg,var(--g1, var(--accent)),var(--g2, var(--accent-deep)))}.thumb--gradient:after{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.12) 1px,transparent 1px);background-size:16px 16px;opacity:.4}.thumb-img{position:relative;z-index:1}.thumb-img.cover{width:100%;height:100%;object-fit:cover}.thumb-img.logo{max-width:74%;max-height:66%;object-fit:contain}.thumb-ico-lg{position:relative;z-index:1;width:3.4rem;height:3.4rem;color:#ffffffeb}.item .body{padding:1.1rem 1.3rem 1.4rem}.item-title{font-family:var(--font-display);font-weight:700;font-size:1.12rem;letter-spacing:-.01em;margin:.35rem 0 0}.item .tag{font-weight:700;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-deep)}.item .tag--muted{color:var(--ink-soft);display:inline-block;margin-top:.8rem}.item .body p{color:var(--ink-soft);font-size:.92rem;margin:.35rem 0 0}.group-title{font-family:var(--font-display);font-weight:700;font-size:1.05rem;margin:3.4rem 0 1.4rem;display:flex;align-items:center;gap:.7rem}.group-title:before{content:"";width:1.4rem;height:2px;background:var(--pine)}.group-title:first-of-type{margin-top:.8rem}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,5vw,4rem);align-items:start}@media(max-width:820px){.contact-grid{grid-template-columns:1fr}}.cinfo li{list-style:none;display:flex;gap:1rem;align-items:flex-start;margin:0 0 1.4rem}.cinfo{padding:0;margin:0}.cinfo .ic{width:2.8rem;height:2.8rem;flex:0 0 auto;display:grid;place-items:center;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--pine) 12%,var(--surface));color:var(--pine)}.cinfo .k{font-family:var(--font-display);font-weight:600}.cinfo .v{color:var(--ink-soft);font-size:.95rem}.cinfo a.v{color:var(--ink);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--accent) 45%,transparent);text-underline-offset:3px;transition:color .25s var(--ease),text-decoration-color .25s var(--ease)}.cinfo a.v:hover{color:var(--accent-deep);text-decoration-color:var(--accent-deep)}.cinfo a.v[target=_blank]:after{content:" ↗";color:var(--ink-soft)}form.contact-form{display:grid;gap:1rem}.form-note{font-size:.85rem;color:var(--ink-soft);margin:0}.req{color:var(--accent-deep)}.row2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:520px){.row2{grid-template-columns:1fr}}.field{display:flex;flex-direction:column;gap:.4rem}.field label{font-family:var(--font-display);font-weight:600;font-size:.85rem}.field input,.field textarea{font-family:var(--font-body);font-size:1rem;color:var(--ink);background:var(--surface);border:1.5px solid var(--line);border-radius:var(--radius-sm);padding:.8rem 1rem;transition:border-color .25s var(--ease)}.field input:focus-visible,.field textarea:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-color:var(--accent)}.field textarea{resize:vertical;min-height:7rem}.contact-form .btn{justify-self:start}.form-status{font-size:.92rem;margin:.2rem 0 0;min-height:1.2em}.form-status.ok{color:var(--pine)}.form-status.err{color:var(--accent-deep)}.footer{background:var(--dark);color:#ffffffb8;margin-top:clamp(3rem,8vh,5rem)}.footer .wrap{display:grid;gap:1.4rem;padding-top:2.6rem;padding-bottom:2.6rem;font-size:.9rem}.footer-top{display:flex;flex-wrap:wrap;align-items:baseline;gap:.6rem 1.2rem}.footer .brand{color:#fff}.footer-tag{margin:0;color:#fff9}.footer-links{display:flex;flex-wrap:wrap;gap:1.4rem;font-weight:600}.footer-meta{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;align-items:center;border-top:1px solid rgba(255,255,255,.12);padding-top:1.2rem}.footer a:hover{color:var(--accent)}.reveal{opacity:1;transform:none}.js .reveal{opacity:0;transform:translateY(18px)}.js .reveal.in{opacity:1;transform:none;transition:opacity .7s var(--ease),transform .7s var(--ease)}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:2rem 1.25rem;background:radial-gradient(120% 70% at 85% -10%,rgba(238,85,45,.1),transparent 60%),radial-gradient(90% 60% at 0% 0%,rgba(47,107,93,.08),transparent 55%)}.auth-card{width:100%;max-width:26rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:clamp(1.6rem,4vw,2.4rem)}.auth-card .brand,.panel-top .brand{color:var(--ink);margin-bottom:1.4rem}.auth-title{font-size:1.5rem;margin:0 0 .3rem}.auth-sub{color:var(--ink-soft);margin:0 0 1.4rem;font-size:.96rem}.auth-tabs{display:flex;gap:.3rem;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-pill);padding:.25rem;margin-bottom:1.3rem}.auth-tab{flex:1;border:0;background:transparent;font-family:var(--font-body);font-weight:700;font-size:.92rem;color:var(--ink-soft);padding:.55rem;border-radius:var(--radius-pill);cursor:pointer;transition:background .2s var(--ease),color .2s var(--ease)}.auth-tab.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm, 0 1px 2px rgba(0,0,0,.08))}.auth-form{display:grid;gap:.9rem}.auth-form .btn{width:100%;justify-content:center}.auth-msg{font-size:.9rem;margin:0;min-height:1.1em;color:var(--ink-soft)}.auth-msg.err{color:var(--accent-deep)}.auth-divider{display:flex;align-items:center;gap:.8rem;color:var(--ink-soft);font-size:.85rem;margin:1.2rem 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--line)}.auth-google{width:100%;justify-content:center}.auth-back{text-align:center;margin:1.3rem 0 0;font-size:.9rem}.auth-back a{color:var(--ink-soft)}.auth-back a:hover{color:var(--accent-deep)}.panel-loading{min-height:100vh;display:grid;place-items:center;color:var(--ink-soft)}.panel{min-height:100vh}.panel-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem clamp(1.25rem,5vw,2.5rem);border-bottom:1px solid var(--line);background:var(--surface);position:sticky;top:0;z-index:10}.panel-top .brand{margin:0}.panel-user{display:flex;align-items:center;gap:1rem;font-weight:600;font-size:.95rem}.panel-user .btn{padding:.5rem 1.1rem}.panel-main{max-width:70rem;margin:0 auto;padding:clamp(2rem,6vw,3.5rem) clamp(1.25rem,5vw,2.5rem)}.panel-main h1{font-size:clamp(1.8rem,1.2rem + 2.4vw,2.6rem);margin:0 0 2rem}.panel-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:1.2rem}.panel-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.6rem}.panel-card h2{font-size:1.2rem;margin:0 0 .5rem}.panel-card .muted{color:var(--ink-soft);font-size:.95rem;margin:0 0 1.2rem}.panel-placeholder{display:grid;place-items:center;height:8rem;border:1.5px dashed var(--line);border-radius:var(--radius-sm);color:var(--ink-soft);font-weight:600;font-size:.9rem}.admin-block{margin-top:2.4rem}.admin-block h2{font-size:1.25rem;margin:0 0 1rem}.table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.admin-table th,.admin-table td{text-align:left;padding:.8rem 1rem;border-bottom:1px solid var(--line);font-size:.95rem}.admin-table th{font-family:var(--font-display);font-weight:600;font-size:.85rem;color:var(--ink-soft);background:var(--bg)}.admin-table tr:last-child td{border-bottom:0}.role-select{font-family:var(--font-body);font-size:.92rem;padding:.4rem .6rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);cursor:pointer}.admin-form{display:grid;gap:1rem;max-width:42rem;margin-bottom:1.6rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem}.admin-form .btn{justify-self:start}.admin-list{list-style:none;padding:0;margin:0;display:grid;gap:.7rem}.admin-list-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:.9rem 1.1rem}.admin-list-item p{margin:.2rem 0 0;font-size:.9rem}.admin-list-item .btn{flex:0 0 auto;padding:.45rem 1rem}.small-link{display:inline-block;margin-top:.3rem;color:var(--accent-deep);font-size:.88rem;font-weight:600}.muted.err{color:var(--accent-deep)}.demo-sub{color:var(--ink-soft);margin:.6rem 0 0;max-width:38rem}.tools-page{padding-top:clamp(2rem,5vw,3.5rem);padding-bottom:4rem}.tools-intro{max-width:52rem;margin:0 auto clamp(1.8rem,5vh,3rem)}.tools-intro h1{font-size:clamp(2rem,1.4rem + 2.6vw,3rem);margin:.4rem 0 1rem}.tools-intro h1 em{font-style:normal;color:var(--accent)}.tools-intro .demo-sub{max-width:42rem}.privacy-badge{display:inline-flex;align-items:center;gap:.55rem;margin-top:1.1rem;font-weight:700;font-size:.82rem;color:var(--pine);background:color-mix(in srgb,var(--pine) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--pine) 28%,var(--line));padding:.45rem .9rem;border-radius:var(--radius-pill)}.privacy-badge svg{width:1rem;height:1rem;flex:0 0 auto}.tools-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1.2rem}.tool-card{display:flex;flex-direction:column;gap:.1rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.6rem;transition:transform .3s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease)}.tool-card:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--accent) 40%,var(--line));box-shadow:var(--shadow-lg)}.tool-card .tc-ic{width:3rem;height:3rem;display:grid;place-items:center;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent-deep);margin-bottom:1.1rem}.tool-card h3{font-size:1.2rem;margin:0 0 .5rem}.tool-card p{color:var(--ink-soft);font-size:.95rem;margin:0 0 1rem}.tool-card .tc-go{margin-top:auto;font-weight:700;font-size:.9rem;color:var(--accent-deep)}.tool-card--soon{opacity:.72}.tool-card--soon .tc-ic{background:color-mix(in srgb,var(--ink) 6%,var(--surface));color:var(--ink-soft)}.tc-tag{align-self:flex-start;font-weight:700;font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);background:var(--bg);border:1px solid var(--line);padding:.25rem .6rem;border-radius:var(--radius-pill);margin-top:auto}.back-row{margin-bottom:1.4rem}.tools-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(19rem,1fr));gap:1.3rem;align-items:stretch}.tool-card2{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--c, var(--accent));border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:1.6rem;transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease)}.tool-card2:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.tool-card2 .t2-ic{width:3.2rem;height:3.2rem;display:grid;place-items:center;border-radius:var(--radius);background:color-mix(in srgb,var(--c) 12%,var(--surface));color:var(--c);margin-bottom:1rem}.tool-card2 .t2-ic svg{width:1.7rem;height:1.7rem}.tool-card2 .t2-tag{align-self:flex-start;font-weight:700;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--c);background:color-mix(in srgb,var(--c) 12%,var(--surface));padding:.28rem .7rem;border-radius:var(--radius-pill);margin-bottom:.7rem}.tool-card2 h2{font-size:1.35rem;margin:0 0 .5rem}.tool-card2>p{color:var(--ink-soft);font-size:.96rem;margin:0 0 1rem}.tool-card2 .chips{margin:0 0 1.3rem}.tool-card2 .chip:hover{border-color:var(--c);color:var(--c)}.tool-card2 .t2-go{margin-top:auto;font-weight:700;color:var(--c)}.tools-foot{text-align:center;color:var(--ink-soft);font-size:.95rem;margin:2.4rem 0 0}.tools-foot a{color:var(--accent-deep);font-weight:600}.editor-feature{display:grid;grid-template-columns:auto 1fr;gap:1.4rem;align-items:start;background:var(--surface);border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:clamp(1.4rem,3vw,2rem);transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease)}.editor-feature:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:color-mix(in srgb,var(--accent) 55%,var(--line))}.editor-feature .ef-ic{width:3.6rem;height:3.6rem;display:grid;place-items:center;border-radius:var(--radius);background:var(--accent-soft);color:var(--accent-deep)}@media(max-width:560px){.editor-feature{grid-template-columns:1fr}}.editor-feature h2{font-size:clamp(1.4rem,1.1rem + 1.4vw,2rem);margin:.6rem 0 .5rem}.editor-feature p{color:var(--ink-soft);margin:0 0 1rem;max-width:46rem}.editor-feature .chips{margin:0 0 1.1rem}.editor-feature .tc-go{color:var(--accent-deep);font-weight:700}.editor-feature .ef-ic.ef-ic--pine{background:color-mix(in srgb,var(--pine) 14%,var(--surface));color:var(--pine)}.grapher{display:grid;grid-template-columns:19rem 1fr;gap:1rem;align-items:stretch}@media(max-width:820px){.grapher{grid-template-columns:1fr}}.gr-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem;display:flex;flex-direction:column;gap:.6rem;max-height:74vh;overflow:auto}.gr-panel-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.gr-panel-head h2{font-family:var(--font-display);font-weight:700;font-size:1.05rem;margin:0}.gr-panel-head .btn{padding:.4rem .85rem;font-size:.85rem}.gr-exprs{display:flex;flex-direction:column;gap:.55rem}.gr-row-wrap{display:flex;flex-direction:column;gap:.2rem}.gr-row{display:flex;align-items:center;gap:.5rem}.gr-color{width:1.35rem;height:1.35rem;border-radius:50%;flex:0 0 auto;cursor:pointer;padding:0;transition:transform .15s var(--ease)}.gr-color:hover{transform:scale(1.12)}.gr-input{flex:1;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92rem;color:var(--ink);background:var(--bg);border:1.5px solid var(--line);border-radius:var(--radius-sm);padding:.5rem .6rem}.gr-input:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-color:var(--accent)}.gr-input.bad{border-color:var(--accent-deep)}.gr-del{flex:0 0 auto;width:1.9rem;height:1.9rem;border:1px solid var(--line);background:var(--surface);border-radius:6px;color:var(--ink-soft);font-size:1.1rem;line-height:1;cursor:pointer;transition:border-color .15s var(--ease),color .15s var(--ease)}.gr-del:hover{border-color:var(--accent);color:var(--accent-deep)}.gr-err{font-size:.78rem;color:var(--accent-deep);padding-left:1.85rem}.gr-panel code,.tool-head code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.85em;background:var(--bg);border:1px solid var(--line);border-radius:5px;padding:.05rem .3rem}.gr-plot{position:relative;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff;min-height:62vh;box-shadow:var(--shadow)}@media(max-width:820px){.gr-plot{min-height:60vh}}.gr-plot canvas{position:absolute;inset:0;touch-action:none;cursor:grab}.gr-plot canvas:active{cursor:grabbing}.gr-toolbar{position:absolute;top:.6rem;right:.6rem;display:flex;flex-direction:column;gap:.35rem}.gr-toolbar .icon-btn{width:2.2rem;height:2.2rem;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(4px)}.gr-coord{position:absolute;left:.6rem;bottom:.6rem;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.78rem;color:var(--ink-soft);background:color-mix(in srgb,var(--surface) 85%,transparent);border:1px solid var(--line);border-radius:var(--radius-pill);padding:.25rem .7rem;pointer-events:none}.gr-actions{display:flex;flex-wrap:wrap;gap:.3rem;padding-left:1.85rem}.gr-actions button{font-family:var(--font-body);font-weight:600;font-size:.76rem;color:var(--ink-soft);background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-pill);padding:.18rem .55rem;cursor:pointer;transition:border-color .15s var(--ease),color .15s var(--ease)}.gr-actions button:hover{border-color:var(--pine);color:var(--pine)}.gr-actions button.on{background:color-mix(in srgb,var(--pine) 14%,var(--surface));border-color:var(--pine);color:var(--pine)}.gr-label{flex:1;min-width:0;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.85rem;color:var(--ink-soft);background:var(--bg);border:1.5px dashed var(--line);border-radius:var(--radius-sm);padding:.45rem .6rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gr-table-wrap{padding-left:1.85rem}.gr-table{border-collapse:collapse;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.78rem;margin-top:.2rem}.gr-table th,.gr-table td{border:1px solid var(--line);padding:.12rem .55rem;text-align:right;color:var(--ink)}.gr-table th{background:var(--bg);color:var(--ink-soft);font-weight:700}.gr-dom-wrap,.gr-info-wrap{padding-left:1.85rem}.gr-dom{display:flex;align-items:center;gap:.35rem;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.82rem;color:var(--ink-soft);margin-top:.25rem}.gr-dom input{width:4.2rem;font-family:inherit;font-size:.82rem;color:var(--ink);background:var(--bg);border:1.5px solid var(--line);border-radius:6px;padding:.25rem .4rem}.gr-dom input:focus-visible{outline:2px solid var(--pine);outline-offset:1px;border-color:var(--pine)}.gr-info{margin-top:.3rem;display:grid;gap:.18rem;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.55rem .7rem}.gr-info>div{display:flex;align-items:baseline;justify-content:space-between;gap:.8rem;font-size:.8rem}.gr-info>div span{color:var(--ink-soft)}.gr-info>div b{font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--ink);text-align:right}.gr-info-note{font-size:.72rem;color:var(--ink-soft);margin:.3rem 0 0}.pdf-toolbar{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem;padding:.5rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.pdf-tb{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-body);font-weight:600;font-size:.86rem;color:var(--ink);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);padding:.45rem .7rem;cursor:pointer;transition:background .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease)}.pdf-tb:hover{background:var(--bg);border-color:var(--line)}.pdf-tb svg{width:1.1rem;height:1.1rem}.pdf-tb[data-sel]{color:var(--ink-soft)}.pdf-tb--go{margin-left:auto;background:var(--accent);color:#fff}.pdf-tb--go:hover{background:var(--accent-deep);border-color:transparent;color:#fff}@media(max-width:640px){.pdf-tb span{display:none}.pdf-tb--go span{display:inline}}.pdf-stage{position:relative;min-height:22rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);padding:1.2rem}.pdf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:1rem}.pdf-card{background:var(--surface);border:1.5px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;box-shadow:var(--shadow);cursor:grab;transition:border-color .15s var(--ease),box-shadow .15s var(--ease),transform .15s var(--ease)}.pdf-card:hover{box-shadow:var(--shadow-lg)}.pdf-card.selected{border-color:var(--accent)}.pdf-card.dragging{opacity:.4}.pdf-thumb{position:relative;aspect-ratio:3/4;display:grid;place-items:center;overflow:hidden;background:#f2efe9}.pdf-thumb-inner{width:100%;height:100%;display:grid;place-items:center;transition:transform .2s var(--ease)}.pdf-thumb img{max-width:100%;max-height:100%;box-shadow:0 1px 6px #00000026;background:#fff}.pdf-badge{position:absolute;top:.3rem;left:.3rem;font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:#fff;background:var(--pine);padding:.1rem .35rem;border-radius:4px}.pdf-badge+.pdf-badge{top:1.4rem;background:var(--accent-deep)}.pdf-check{position:absolute;top:.3rem;right:.3rem;width:1.2rem;height:1.2rem;border-radius:50%;border:2px solid rgba(255,255,255,.9);background:#00000026;box-shadow:0 0 0 1px var(--line)}.pdf-card.selected .pdf-check{background:var(--accent);border-color:#fff}.pdf-card.selected .pdf-check:after{content:"✓";color:#fff;font-size:.8rem;display:grid;place-items:center;height:100%}.pdf-card-bar{display:flex;align-items:center;justify-content:space-between;padding:.3rem .5rem;border-top:1px solid var(--line)}.pdf-num{font-size:.78rem;font-weight:700;color:var(--ink-soft)}.pdf-card-acts{display:flex;gap:.1rem}.pdf-card-acts button{width:1.7rem;height:1.7rem;border:0;background:transparent;border-radius:5px;cursor:pointer;color:var(--ink-soft);font-size:.95rem;line-height:1;transition:background .15s var(--ease),color .15s var(--ease)}.pdf-card-acts button:hover{background:var(--bg);color:var(--accent-deep)}.pdf-modal{position:fixed;inset:0;z-index:60;display:none;place-items:center;background:#14121080;backdrop-filter:blur(3px);padding:1.2rem}.pdf-modal.on{display:grid}.pdf-modal-box{width:100%;max-width:40rem;max-height:92vh;overflow:auto;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:1.4rem}.pdf-modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.pdf-modal-head h2{font-size:1.2rem;margin:0}.pdf-modal-x{border:0;background:var(--bg);width:2rem;height:2rem;border-radius:50%;cursor:pointer;font-size:1rem;color:var(--ink-soft)}.pdf-modal-box .ctl{margin-bottom:.8rem}.pdf-modal-box .ctl input[type=text],.pdf-modal-box .ctl select{width:100%;font-family:var(--font-body);font-size:.95rem;color:var(--ink);background:var(--bg);border:1.5px solid var(--line);border-radius:var(--radius-sm);padding:.55rem .7rem}.pdf-modal-box .ctl input[type=range]{width:100%;accent-color:var(--accent)}.pdf-modal-box .ctl input[type=color]{width:2.6rem;height:2.2rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--bg)}.pdf-modal-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}.pdf-ed-tools{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.8rem}.pdf-ed-tools .btn{padding:.45rem .9rem;font-size:.88rem}.pdf-ed-stage{display:grid;place-items:center;background:#f2efe9;border:1px solid var(--line);border-radius:var(--radius-sm);padding:1rem;overflow:auto;max-height:56vh}.pdf-ed-holder{position:relative;line-height:0;box-shadow:var(--shadow)}.pdf-ed-holder canvas{display:block}#edBaseP{background:#fff;max-width:100%}#edOverP{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair}.pdf-ed-opts{margin-top:.8rem;display:grid;gap:.6rem}.pdf-ed-opts .ctl-color{display:flex;align-items:center;gap:.8rem}.pdf-sign canvas{border:1.5px dashed var(--line);border-radius:var(--radius-sm);background:#fff;touch-action:none;width:100%;max-width:460px}.gr-params{display:grid;gap:.4rem;padding:.6rem 0;border-top:1px solid var(--line)}.gr-params-title,.gr-keypad-title{font-family:var(--font-display);font-weight:700;font-size:.8rem;color:var(--ink-soft);letter-spacing:.04em;text-transform:uppercase}.gr-param{display:flex;align-items:center;gap:.5rem}.gr-param-name{font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:700;color:var(--pine);width:1.2rem}.gr-param input[type=range]{flex:1;accent-color:var(--pine)}.gr-param-val{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.82rem;color:var(--ink);min-width:2.5rem;text-align:right}.gr-keypad{display:grid;gap:.4rem;padding:.6rem 0;border-top:1px solid var(--line)}.gr-keys{display:grid;grid-template-columns:repeat(6,1fr);gap:.3rem}.gr-key{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.9rem;font-weight:600;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.5rem 0;cursor:pointer;transition:background .12s var(--ease),border-color .12s var(--ease)}.gr-key:hover{background:var(--bg);border-color:var(--accent)}.gr-key:active{background:var(--accent-soft)}.gr-key--fn{font-size:.78rem;color:var(--pine)}.gr-key--op{color:var(--accent-deep)}.gr-key--var{color:var(--accent-deep);font-style:italic}.tool-wrap{max-width:74rem}.tool-head{max-width:44rem;margin:0 0 1.8rem}.tool-head h1{font-size:clamp(1.7rem,1.2rem + 2vw,2.4rem);margin:.3rem 0 .7rem}.tool-head h1 em{font-style:normal;color:var(--accent)}.tool-head p{color:var(--ink-soft);margin:0}.tool-layout{display:grid;grid-template-columns:22rem 1fr;gap:1.4rem;align-items:start}@media(max-width:860px){.tool-layout{grid-template-columns:1fr}}.tool-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.4rem;display:grid;gap:1.2rem}.tool-preview{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.2rem;position:sticky;top:5.5rem}@media(max-width:860px){.tool-preview{position:static}}.dropzone{display:grid;place-items:center;gap:.5rem;text-align:center;padding:1.6rem 1rem;border:1.8px dashed var(--line);border-radius:var(--radius-sm);background:var(--bg);color:var(--ink-soft);cursor:pointer;transition:border-color .2s var(--ease),background .2s var(--ease),color .2s var(--ease)}.dropzone:hover,.dropzone.drag{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-deep)}.dropzone svg{width:1.7rem;height:1.7rem}.dropzone b{font-family:var(--font-display);font-weight:700;color:var(--ink)}.dropzone small{font-size:.82rem}.dropzone input[type=file]{display:none}.ctl{display:grid;gap:.45rem}.ctl>label,.ctl-label{font-family:var(--font-display);font-weight:600;font-size:.85rem;display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.ctl-label .val{font-family:var(--font-body);font-weight:700;color:var(--accent-deep);font-size:.85rem}.ctl input[type=range]{width:100%;accent-color:var(--accent)}.ctl input[type=text],.ctl textarea,.ctl select{font-family:var(--font-body);font-size:.95rem;color:var(--ink);background:var(--bg);border:1.5px solid var(--line);border-radius:var(--radius-sm);padding:.6rem .8rem;width:100%;transition:border-color .2s var(--ease)}.ctl textarea{resize:vertical;min-height:4rem;line-height:1.4}.ctl input:focus-visible,.ctl textarea:focus-visible,.ctl select:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-color:var(--accent)}.ctl-color{display:flex;align-items:center;gap:.6rem}.ctl-color input[type=color]{width:2.6rem;height:2.2rem;padding:0;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);cursor:pointer}.ctl-hint{font-size:.8rem;color:var(--ink-soft);margin:0}.ctl-check{display:flex;align-items:center;gap:.6rem;font-size:.92rem;cursor:pointer}.ctl-check input{width:1.05rem;height:1.05rem;accent-color:var(--accent)}.seg{display:flex;gap:.3rem;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-pill);padding:.25rem}.seg button{flex:1;border:0;background:transparent;font-family:var(--font-body);font-weight:700;font-size:.88rem;color:var(--ink-soft);padding:.5rem .4rem;border-radius:var(--radius-pill);cursor:pointer;transition:background .2s var(--ease),color .2s var(--ease)}.seg button.active{background:var(--accent);color:#fff}.thumb-list{display:grid;gap:.6rem}.thumb-row{display:flex;align-items:center;gap:.7rem;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.5rem .6rem}.thumb-row img{width:3rem;height:3rem;object-fit:cover;border-radius:6px;border:1px solid var(--line);flex:0 0 auto;background:#fff}.thumb-row .tr-meta{min-width:0;flex:1}.thumb-row .tr-name{font-size:.85rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.thumb-row .tr-dim{font-size:.78rem;color:var(--ink-soft)}.thumb-row .tr-btns{display:flex;gap:.25rem;flex:0 0 auto}.icon-btn{width:1.9rem;height:1.9rem;display:grid;place-items:center;border:1px solid var(--line);background:var(--surface);border-radius:6px;cursor:pointer;color:var(--ink-soft);transition:border-color .2s var(--ease),color .2s var(--ease)}.icon-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent-deep)}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn svg{width:1rem;height:1rem}.stage{display:grid;place-items:center;min-height:16rem;padding:1rem;border-radius:var(--radius-sm);background-color:#f2efe9;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:18px 18px;background-position:0 0,0 9px,9px -9px,-9px 0;overflow:auto}.stage canvas{max-width:100%;height:auto;border-radius:4px;box-shadow:var(--shadow);background:#fff}.stage .stage-empty{color:var(--ink-soft);font-weight:600;font-size:.92rem;text-align:center}.tool-preview .prev-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.9rem}.tool-preview .prev-head h2{font-family:var(--font-display);font-weight:700;font-size:1.05rem;margin:0}.tool-preview .prev-dims{font-size:.82rem;color:var(--ink-soft);font-weight:600}.tool-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.1rem}.tool-actions .btn{padding:.65rem 1.2rem}.tool-actions .btn[disabled]{opacity:.5;pointer-events:none}.editor-page{max-width:82rem;padding-top:clamp(1.4rem,4vw,2.4rem);padding-bottom:3rem}.editor-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.2rem}.editor-head h1{font-size:clamp(1.6rem,1.2rem + 1.8vw,2.2rem);margin:.2rem 0 0}.editor-head h1 em{font-style:normal;color:var(--accent)}.editor-head .kick{margin:0}.editor-topbar{display:flex;gap:.5rem;flex-wrap:wrap}.editor-topbar .btn{padding:.55rem 1rem;font-size:.9rem}.editor{display:grid;grid-template-columns:13rem 1fr 20rem;gap:1rem;align-items:start}@media(max-width:1040px){.editor{grid-template-columns:1fr}}.ed-tools{display:flex;flex-direction:column;gap:.25rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:.5rem;position:sticky;top:5rem}@media(max-width:1040px){.ed-tools{position:static;flex-direction:row;flex-wrap:wrap}}.ed-tool{display:flex;align-items:center;gap:.6rem;width:100%;text-align:left;font-family:var(--font-body);font-weight:600;font-size:.9rem;color:var(--ink);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);padding:.5rem .6rem;cursor:pointer;transition:background .15s var(--ease),color .15s var(--ease),border-color .15s var(--ease)}.ed-tool:hover{background:var(--bg)}.ed-tool.active{background:var(--accent);color:#fff}.ed-tool svg{width:1.15rem;height:1.15rem;flex:0 0 auto}.ed-tool.active svg{color:#fff}.ed-tool-sep{height:1px;background:var(--line);margin:.35rem .2rem}@media(max-width:1040px){.ed-tool{width:auto}.ed-tool span,.ed-tool-sep{display:none}}.ed-main{min-width:0}.ed-stage{position:relative;display:grid;place-items:center;min-height:24rem;max-height:74vh;overflow:auto;padding:1.2rem;border-radius:var(--radius);border:1px solid var(--line);background-color:#f2efe9;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:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0}.canvas-holder{position:relative;line-height:0;box-shadow:var(--shadow-lg);border-radius:3px}.canvas-holder canvas{display:block;border-radius:3px}#edBase{max-width:100%;height:auto;background:#fff}#edOverlay{position:absolute;inset:0;width:100%;height:100%;touch-action:none}.ed-empty{display:grid;place-items:center;gap:.6rem;text-align:center;color:var(--ink-soft);padding:2rem}.ed-empty .dropzone{max-width:24rem}.ed-busy{position:absolute;inset:0;display:none;place-items:center;background:#fbf9f5d1;backdrop-filter:blur(2px);z-index:5;border-radius:var(--radius)}.ed-busy.on{display:grid}.ed-busy .box{display:grid;justify-items:center;gap:.7rem;color:var(--ink);font-weight:600;text-align:center;padding:1rem 1.4rem}.ed-spinner{width:2.2rem;height:2.2rem;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:ed-spin .8s linear infinite}@keyframes ed-spin{to{transform:rotate(360deg)}}.ed-busy small{color:var(--ink-soft);font-weight:500;max-width:18rem}.ed-options{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.2rem;position:sticky;top:5rem;display:grid;gap:1rem;align-content:start}@media(max-width:1040px){.ed-options{position:static}}.ed-opt-title{font-family:var(--font-display);font-weight:700;font-size:1.1rem;margin:0;display:flex;align-items:center;gap:.5rem}.ed-opt-hint{font-size:.85rem;color:var(--ink-soft);margin:0}.ed-status{font-size:.85rem;color:var(--ink-soft);min-height:1em}.ed-status.err{color:var(--accent-deep)}.ed-status.ok{color:var(--pine)}.ed-dims{font-size:.82rem;color:var(--ink-soft);font-weight:600}.ed-badge-ai{display:inline-block;font-size:.62rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--accent-deep);background:var(--accent-soft);padding:.12rem .4rem;border-radius:var(--radius-pill);vertical-align:middle}.swatches{display:flex;flex-wrap:wrap;gap:.35rem}.swatch{width:1.4rem;height:1.4rem;border-radius:50%;border:2px solid var(--surface);box-shadow:0 0 0 1px var(--line);cursor:pointer}.swatch.active{box-shadow:0 0 0 2px var(--accent)}.color-adv{display:flex;align-items:center;gap:.5rem}.color-adv input[type=color]{width:2.4rem;height:2.2rem;padding:0;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);cursor:pointer;flex:0 0 auto}.color-adv input[type=text]{flex:1;min-width:0;font-family:var(--font-body);font-size:.9rem;color:var(--ink);background:var(--bg);border:1.5px solid var(--line);border-radius:var(--radius-sm);padding:.5rem .7rem}.color-adv input[type=text].bad{border-color:var(--accent-deep)}.color-adv input:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-color:var(--accent)}.ed-text-editor{position:absolute;z-index:6;margin:0;padding:0;border:1.5px dashed var(--accent);background:#ffffff0f;color:#000;font-family:var(--font-body);font-weight:700;line-height:1.25;text-align:center;resize:none;overflow:hidden;outline:none;white-space:pre;transform:translate(-50%,-50%);box-shadow:0 0 0 9999px #1412100a}.ed-obj-actions{display:flex;flex-wrap:wrap;gap:.5rem}.ed-obj-actions .btn{padding:.5rem .9rem;font-size:.85rem}.ed-empty-sel{color:var(--ink-soft);font-size:.9rem}.ed-kbd{display:inline-block;font-family:var(--font-body);font-weight:700;font-size:.78rem;background:var(--bg);border:1px solid var(--line);border-radius:5px;padding:.05rem .35rem}.board-wrap{max-width:82rem}.board-head{max-width:none;display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap}.board-topbar{display:flex;flex-wrap:wrap;gap:.5rem}.board-topbar .btn{padding:.55rem 1rem;font-size:.9rem}.board{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;background:#fbfaf7}.bd-stage{position:relative;width:100%;height:min(74vh,720px);min-height:26rem;touch-action:none;overflow:hidden}.bd-stage canvas{position:absolute;inset:0;display:block}.bd-stage.bd-grabbing canvas{cursor:grabbing!important}.bd-text{position:absolute;z-index:5;display:none;margin:0;border:0;outline:none;resize:none;overflow:hidden;background:transparent;font-family:var(--font-body);box-sizing:border-box;white-space:pre-wrap;word-break:break-word}.bd-tools{position:absolute;top:50%;left:.8rem;transform:translateY(-50%);z-index:6;display:flex;flex-direction:column;gap:.3rem;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:var(--radius-pill);box-shadow:var(--shadow);padding:.4rem}.bd-tool{width:2.4rem;height:2.4rem;display:grid;place-items:center;border:0;background:transparent;border-radius:50%;color:var(--ink-soft);cursor:pointer;transition:background .15s var(--ease),color .15s var(--ease)}.bd-tool svg{width:1.2rem;height:1.2rem}.bd-tool:hover:not(:disabled){background:var(--bg);color:var(--ink)}.bd-tool.active{background:var(--accent);color:#fff}.bd-tool:disabled{opacity:.35;cursor:default}.bd-action:hover:not(:disabled){color:var(--accent-deep)}.bd-sep{height:1px;margin:.25rem .5rem;background:var(--line)}.bd-colors{position:absolute;left:.8rem;bottom:.8rem;z-index:6;display:flex;gap:.35rem;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:var(--radius-pill);box-shadow:var(--shadow);padding:.4rem}.bd-color{width:1.5rem;height:1.5rem;border-radius:50%;border:2px solid var(--surface);box-shadow:0 0 0 1px var(--line);cursor:pointer;background:var(--sw);padding:0;transition:transform .12s var(--ease)}.bd-color:hover{transform:scale(1.12)}.bd-color.active{box-shadow:0 0 0 2px var(--accent)}.bd-zoom{position:absolute;right:.8rem;bottom:.8rem;z-index:6;display:flex;align-items:center;gap:.3rem;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:var(--radius-pill);box-shadow:var(--shadow);padding:.3rem}.bd-zoom .icon-btn{border:0;background:transparent;width:2rem;height:2rem}.bd-zoom-val{border:0;background:transparent;font-family:var(--font-body);font-weight:700;font-size:.8rem;color:var(--ink-soft);min-width:3.2rem;cursor:pointer;border-radius:var(--radius-pill);padding:.3rem .2rem;transition:color .15s var(--ease),background .15s var(--ease)}.bd-zoom-val:hover{color:var(--accent-deep);background:var(--bg)}.board-hint{color:var(--ink-soft);font-size:.88rem;margin:1rem 0 0;text-align:center}.board-hint b{color:var(--ink);font-weight:700}@media(max-width:640px){.bd-tools{flex-direction:row;top:auto;bottom:.8rem;left:50%;transform:translate(-50%)}.bd-colors{left:.8rem;bottom:3.9rem}.bd-zoom{right:.8rem;bottom:3.9rem}}.board-topbar .bd-tb{padding:.55rem .7rem;font-size:.9rem;min-width:2.2rem}#bdHelpBtn{font-weight:800}.bd-toggle.active{background:var(--accent);border-color:var(--accent);color:#fff}.bd-dd{position:relative}.bd-dd-menu{position:absolute;right:0;top:calc(100% + .4rem);z-index:30;display:flex;flex-direction:column;min-width:12rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);padding:.3rem}.bd-dd-menu button{text-align:left;font-family:var(--font-body);font-size:.9rem;color:var(--ink);background:transparent;border:0;border-radius:6px;padding:.5rem .7rem;cursor:pointer}.bd-dd-menu button:hover{background:var(--bg);color:var(--accent-deep)}.bd-menu{position:absolute;z-index:40;display:flex;flex-direction:column;min-width:12.5rem;max-height:80%;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);padding:.3rem}.bd-menu button{display:flex;align-items:center;justify-content:space-between;gap:1rem;text-align:left;font-family:var(--font-body);font-size:.88rem;color:var(--ink);background:transparent;border:0;border-radius:6px;padding:.45rem .6rem;cursor:pointer}.bd-menu button:hover:not(:disabled){background:var(--bg);color:var(--accent-deep)}.bd-menu button:disabled{opacity:.4;cursor:default}.bd-menu kbd{font-family:var(--font-body);font-size:.72rem;color:var(--ink-soft);background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:.05rem .35rem}.bd-menu-sep{height:1px;background:var(--line);margin:.25rem .4rem}.bd-flash{position:absolute;left:50%;bottom:1rem;transform:translate(-50%,1rem);z-index:20;background:var(--dark);color:#fff;font-size:.85rem;font-weight:600;padding:.5rem 1rem;border-radius:var(--radius-pill);box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:opacity .2s var(--ease),transform .2s var(--ease)}.bd-flash.show{opacity:1;transform:translate(-50%)}.bd-help{position:absolute;right:.8rem;top:.8rem;z-index:20;width:min(24rem,calc(100% - 1.6rem));max-height:calc(100% - 1.6rem);overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:1rem 1.2rem 1.2rem}.bd-help-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6rem}.bd-help-head h2{font-family:var(--font-display);font-size:1.05rem;margin:0}.bd-help-head button{border:0;background:var(--bg);border-radius:6px;width:1.8rem;height:1.8rem;cursor:pointer;color:var(--ink-soft);font-size:.9rem}.bd-help-head button:hover{color:var(--accent-deep)}.bd-help dl{display:grid;grid-template-columns:1fr auto;gap:.35rem .8rem;margin:0;font-size:.85rem}.bd-help dt{color:var(--ink-soft)}.bd-help dd{margin:0;font-weight:600;text-align:right}.bd-color-custom{position:relative;overflow:hidden;padding:0;background:conic-gradient(from 0deg,#e8a33d,#ee552d,#d6336c,#7048e8,#1c7ed6,#2f9e73,#e8a33d)}.bd-color-custom input[type=color]{position:absolute;inset:-4px;width:calc(100% + 8px);height:calc(100% + 8px);opacity:0;cursor:pointer;border:0;padding:0}.bd-stage.bd-drop:after{content:attr(data-drop);position:absolute;inset:6px;z-index:12;display:grid;place-items:center;border:2.5px dashed var(--accent);border-radius:var(--radius);background:color-mix(in srgb,var(--accent) 8%,transparent);color:var(--accent-deep);font-weight:700;pointer-events:none}.bd-modal{position:absolute;inset:0;z-index:30;display:grid;place-items:center;padding:1rem;background:color-mix(in srgb,var(--dark) 32%,transparent);backdrop-filter:blur(2px)}.bd-modal-card{width:min(46rem,100%);max-height:calc(100% - 2rem);overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:1.4rem}.bd-modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.bd-modal-head h2{font-family:var(--font-display);font-size:1.3rem;margin:0}.bd-modal-head button{border:0;background:var(--bg);border-radius:6px;width:2rem;height:2rem;cursor:pointer;color:var(--ink-soft)}.bd-modal-head button:hover{color:var(--accent-deep)}.bd-tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:.8rem}.bd-tpl-card{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:.8rem;cursor:pointer;transition:transform .2s var(--ease),border-color .2s var(--ease),box-shadow .2s var(--ease)}.bd-tpl-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--accent) 45%,var(--line));box-shadow:var(--shadow)}.bd-tpl-thumb{width:100%;aspect-ratio:64 / 44;display:grid;place-items:center;background:var(--bg);border-radius:var(--radius-sm);color:var(--ink-soft);margin-bottom:.2rem}.bd-tpl-thumb svg{width:62%;height:auto}.bd-tpl-card:hover .bd-tpl-thumb{color:var(--accent-deep)}.bd-tpl-card b{font-family:var(--font-display);font-size:.92rem}.bd-tpl-card small{color:var(--ink-soft);font-size:.78rem;line-height:1.3}.bd-empty{position:absolute;inset:0;z-index:15;display:grid;place-items:center;padding:1rem;pointer-events:none}.bd-empty-card{pointer-events:auto;width:min(44rem,100%);max-height:calc(100% - 2rem);overflow:auto;text-align:center;background:color-mix(in srgb,var(--surface) 96%,transparent);backdrop-filter:blur(3px);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:1.6rem clamp(1rem,4vw,2rem)}.bd-empty-card .kick{margin-bottom:.3rem}.bd-empty-card h2{font-family:var(--font-display);font-size:clamp(1.4rem,1.1rem + 1.4vw,1.9rem);margin:0 0 .3rem}.bd-empty-sub{color:var(--ink-soft);font-size:.92rem;margin:0 0 1.2rem}.bd-empty-card .bd-tpl-grid{margin-bottom:1.2rem}.bd-empty-card .bd-tpl-card{align-items:center;text-align:center}.bd-selbar{position:absolute;z-index:14;transform:translate(-50%,-100%);display:flex;align-items:center;gap:.2rem;flex-wrap:wrap;max-width:min(94%,40rem);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-pill);box-shadow:var(--shadow-lg);padding:.3rem .4rem}.bd-sc{width:1.15rem;height:1.15rem;border-radius:50%;border:2px solid var(--surface);box-shadow:0 0 0 1px var(--line);background:var(--sw);padding:0;cursor:pointer;transition:transform .12s var(--ease)}.bd-sc:hover{transform:scale(1.15)}.bd-sb-sep{width:1px;align-self:stretch;margin:.15rem .2rem;background:var(--line)}.bd-sb-btn{display:grid;place-items:center;min-width:1.9rem;height:1.9rem;padding:0 .35rem;border:0;background:transparent;border-radius:8px;color:var(--ink-soft);font-family:var(--font-body);font-weight:700;font-size:.82rem;cursor:pointer;transition:background .15s var(--ease),color .15s var(--ease)}.bd-sb-btn svg{width:1.05rem;height:1.05rem}.bd-sb-btn:hover{background:var(--bg);color:var(--ink)}.bd-sb-btn.active{background:var(--accent);color:#fff}.bd-sb-del:hover{background:color-mix(in srgb,#c0392b 12%,var(--surface));color:#c0392b}.bd-minimap{position:absolute;top:.8rem;right:.8rem;z-index:8;width:168px;height:112px;padding:3px;background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(4px);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow);overflow:hidden}.bd-minimap canvas{width:100%;height:100%;display:block;cursor:pointer;border-radius:4px}@media(max-width:640px){.bd-minimap{width:120px;height:82px}}.bd-tabs{display:flex;align-items:center;gap:.3rem;flex-wrap:wrap;margin:0 0 .5rem}.bd-tab{display:flex;align-items:center;gap:.2rem;background:var(--surface);border:1px solid var(--line);border-bottom-color:transparent;border-radius:var(--radius-sm) var(--radius-sm) 0 0;padding:.35rem .3rem .35rem .7rem;max-width:14rem}.bd-tab.active{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));border-bottom-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--surface))}.bd-tab-name{font-family:var(--font-body);font-weight:600;font-size:.85rem;color:var(--ink-soft);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bd-tab.active .bd-tab-name{color:var(--ink)}.bd-tab-x{border:0;background:transparent;color:var(--ink-soft);font-size:.72rem;line-height:1;width:1.2rem;height:1.2rem;border-radius:4px;cursor:pointer;flex:0 0 auto}.bd-tab-x:hover{background:var(--bg);color:var(--accent-deep)}.bd-tab-add{border:1px dashed var(--line);background:transparent;color:var(--ink-soft);width:1.9rem;height:1.9rem;border-radius:var(--radius-sm);font-size:1.1rem;line-height:1;cursor:pointer;flex:0 0 auto}.bd-tab-add:hover{border-color:var(--accent);color:var(--accent-deep)}html.i18n-hide body{visibility:hidden}.lang-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:2.6rem;height:2.2rem;padding:0 .7rem;font-family:var(--font-body);font-weight:800;font-size:.8rem;letter-spacing:.04em;color:var(--ink);background:var(--surface);border:1.5px solid var(--line);border-radius:var(--radius-pill);cursor:pointer;transition:border-color .2s var(--ease),color .2s var(--ease)}.lang-toggle:hover{border-color:var(--accent);color:var(--accent-deep)}.nav .lang-toggle{color:#fff;background:transparent;border-color:#fff6}.nav.scrolled .lang-toggle{color:var(--ink);border-color:var(--line)}.nav .lang-toggle:hover{border-color:#fff;color:#fff;background:#ffffff1f}.nav.scrolled .lang-toggle:hover{border-color:var(--accent);color:var(--accent-deep);background:transparent}
