:root{--color-page-bg: #f4f7fc;--color-page-bg-soft: #eef4fb;--color-shell: rgba(255, 255, 255, .78);--color-surface: #ffffff;--color-surface-soft: #f8faff;--color-ink: #07143d;--color-ink-soft: #1b2447;--color-muted: #6f7b99;--color-muted-light: #8994ad;--color-border: #e5ebf4;--color-border-strong: #d8e0ec;--color-primary: #657df2;--color-primary-2: #7657e8;--color-primary-soft: #eef1ff;--color-mint: #24bfae;--color-mint-soft: #e7fbf7;--color-green: #75c977;--color-green-soft: #eef9ec;--color-orange: #eb8b3d;--color-orange-soft: #fff2e6;--color-purple: #8b5cf6;--color-purple-soft: #f2edff;--color-blue-soft: #eef6ff;--color-cyan-soft: #eafcff;--color-warm-soft: #fff5e9;--gradient-primary: linear-gradient(135deg, #657df2 0%, #7657e8 100%);--shadow-soft: 0 8px 24px rgba(47, 65, 110, .08);--shadow-card: 0 14px 34px rgba(47, 65, 110, .08);--shadow-card-hover: 0 22px 48px rgba(47, 65, 110, .14);--shadow-float: 0 18px 42px rgba(47, 65, 110, .13);--radius: 22px;--radius-md: 18px;--radius-sm: 12px;--max-w: 1180px;--font-display: "Plus Jakarta Sans", Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-body: Inter, Manrope, "Plus Jakarta Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;color-scheme:light}[data-theme=dark]{--color-page-bg: #0b1020;--color-page-bg-soft: #0d1428;--color-shell: rgba(16, 24, 48, .82);--color-surface: #111a32;--color-surface-soft: #17213c;--color-ink: #f6f8ff;--color-ink-soft: #e4e9ff;--color-muted: #9faad0;--color-muted-light: #7e89af;--color-border: rgba(157, 171, 210, .18);--color-border-strong: rgba(157, 171, 210, .28);--color-primary-soft: rgba(101, 125, 242, .16);--color-mint-soft: rgba(36, 191, 174, .14);--color-green-soft: rgba(117, 201, 119, .14);--color-orange-soft: rgba(235, 139, 61, .14);--color-purple-soft: rgba(139, 92, 246, .16);--color-blue-soft: rgba(101, 125, 242, .14);--color-cyan-soft: rgba(43, 172, 207, .14);--color-warm-soft: rgba(235, 139, 61, .12);--shadow-soft: 0 8px 24px rgba(0, 0, 0, .35);--shadow-card: 0 14px 34px rgba(0, 0, 0, .4);--shadow-card-hover: 0 22px 48px rgba(0, 0, 0, .5);--shadow-float: 0 18px 42px rgba(0, 0, 0, .45);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;color:var(--color-ink);font-family:var(--font-body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;background:radial-gradient(circle at 15% 0%,rgba(125,151,255,.18),transparent 34%),radial-gradient(circle at 85% 10%,rgba(142,221,255,.18),transparent 30%),linear-gradient(180deg,#f4f7fc,#fff 45%,#f8fbff);background-attachment:fixed}[data-theme=dark] body{background:radial-gradient(circle at 15% 0%,rgba(101,125,242,.16),transparent 34%),radial-gradient(circle at 85% 10%,rgba(43,172,207,.14),transparent 30%),linear-gradient(180deg,#0b1020,#0c1326 45%,#0b1020)}.starfield{position:fixed;inset:0;z-index:-1;width:100%;height:100%;display:none;pointer-events:none;image-rendering:pixelated;image-rendering:crisp-edges}[data-theme=dark] .starfield{display:block}a{color:inherit;text-decoration:none}img,svg{display:block}button{font:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:8px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;top:1rem;left:1rem;z-index:200;padding:.6rem 1.1rem;border-radius:999px;background:var(--gradient-primary);color:#fff;font-weight:700;font-size:.88rem;transform:translateY(-200%);transition:transform .18s ease}.skip-link:focus{transform:translateY(0)}.ico{display:inline-flex;width:20px;height:20px}.ico svg{width:100%;height:100%}.gradient-text{background:linear-gradient(135deg,#5f7df0,#7657e8 80%);-webkit-background-clip:text;background-clip:text;color:transparent}.container{width:min(var(--max-w),calc(100% - 48px));margin-inline:auto}.site-header{background:color-mix(in srgb,var(--color-surface) 70%,transparent);border-bottom:1px solid rgba(229,235,244,.85);backdrop-filter:blur(14px)}[data-theme=dark] .site-header{border-bottom-color:var(--color-border)}.site-header__inner{width:min(var(--max-w),calc(100% - 48px));margin-inline:auto;height:78px;display:flex;align-items:center;gap:20px}.brand{font-family:var(--font-display);font-weight:800;font-size:1.78rem;letter-spacing:-.03em;color:var(--color-ink)}.nav{display:flex;align-items:center;gap:4px;margin:0 auto}.nav-link{display:inline-flex;align-items:center;gap:5px;color:#44506f;font-size:.9rem;font-weight:600;padding:9px 13px;border-radius:10px;transition:color .18s ease,background-color .18s ease}[data-theme=dark] .nav-link{color:var(--color-muted)}.nav-link:hover,.nav-link[aria-current=page]{color:var(--color-ink);background:var(--color-primary-soft)}.nav-link .ico{width:15px;height:15px;opacity:.75}.nav-actions{display:flex;align-items:center;gap:10px}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-ink-soft);box-shadow:var(--shadow-soft);transition:transform .18s ease,border-color .18s ease,color .18s ease}.theme-toggle:hover{transform:translateY(-1px);border-color:var(--color-border-strong)}.theme-toggle .ico{width:19px;height:19px}.theme-toggle .ico-moon,[data-theme=dark] .theme-toggle .ico-sun{display:none}[data-theme=dark] .theme-toggle .ico-moon{display:inline-flex}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;height:48px;padding:0 24px;border-radius:12px;border:1px solid transparent;font-family:var(--font-display);font-weight:700;font-size:.95rem;letter-spacing:-.005em;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background-color .18s ease}.btn .ico{width:18px;height:18px}.btn--sm{height:42px;padding:0 18px;font-size:.9rem}.btn--primary{color:#fff;background:var(--gradient-primary);box-shadow:0 12px 28px #657df257,inset 0 1px #ffffff40}.btn--primary:hover{transform:translateY(-1px);box-shadow:0 16px 34px #657df26b,inset 0 1px #ffffff40}.btn--secondary{color:#44506f;background:#ffffffd1;border-color:var(--color-border);box-shadow:var(--shadow-soft)}[data-theme=dark] .btn--secondary{color:var(--color-ink-soft);background:var(--color-surface)}.btn--secondary:hover{transform:translateY(-1px);border-color:var(--color-border-strong)}.btn--ghost{color:var(--color-ink-soft);background:transparent;border-color:transparent}.btn--ghost:hover{background:var(--color-primary-soft)}.btn__play{display:inline-flex;width:26px;height:26px;align-items:center;justify-content:center;border-radius:999px;background:var(--color-primary-soft);color:var(--color-primary)}.btn__play .ico{width:16px;height:16px}.main-wrap,.tool-page,.page{max-width:var(--max-w);margin:0 auto}.hero{width:min(var(--max-w),calc(100% - 48px));margin-inline:auto;padding:72px 0 48px;display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center}.hero__copy{max-width:580px}.headline{margin:0;font-family:var(--font-display);font-weight:800;font-size:clamp(2.6rem,5.4vw,4rem);line-height:1.05;letter-spacing:-.045em;color:var(--color-ink)}.hero-sub{margin:22px 0 0;max-width:500px;color:var(--color-muted);font-size:1.06rem;line-height:1.6}.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin:32px 0 0}.hero-showcase{width:100%;max-width:520px;justify-self:end}.tool-showcase{position:relative}.tool-showcase__viewport{position:relative;overflow:hidden;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-card)}.tool-showcase__track{display:flex;margin:0;padding:0;list-style:none;transition:transform .5s cubic-bezier(.22,.61,.36,1);will-change:transform}.tool-showcase__slide{flex:0 0 100%;display:flex}.tool-showcase__link{display:flex;flex-direction:column;width:100%;color:inherit;text-decoration:none}a.tool-showcase__link{cursor:pointer}a.tool-showcase__link:focus-visible{outline:2px solid var(--color-primary);outline-offset:-3px;border-radius:var(--radius)}.tool-showcase__link--soon{cursor:default}.tool-showcase__media{position:relative;display:grid;place-items:center;aspect-ratio:16 / 10;overflow:hidden;border-bottom:1px solid var(--color-border);background:radial-gradient(circle at 50% 30%,color-mix(in srgb,var(--accent-soft) 92%,#fff),var(--accent-soft))}.tool-showcase__shot{width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform .35s ease}a.tool-showcase__link:hover .tool-showcase__shot,a.tool-showcase__link:focus-visible .tool-showcase__shot{transform:scale(1.04)}.tool-showcase__art{display:inline-flex;align-items:center;justify-content:center;width:86px;height:86px;border-radius:22px;background:#ffffffe6;border:1px solid rgba(255,255,255,.7);box-shadow:0 14px 26px -12px color-mix(in srgb,var(--accent-ink) 55%,transparent);color:var(--accent-ink)}[data-theme=dark] .tool-showcase__art{background:#ffffff14;border-color:#ffffff1f}.tool-showcase__art svg{width:44px;height:44px}.tool-showcase__badge{position:absolute;top:12px;right:12px;padding:4px 10px;border-radius:999px;font-size:.64rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;background:#ffffffd9;color:var(--color-muted);border:1px solid var(--color-border)}.tool-showcase__body{display:flex;flex-direction:column;gap:8px;padding:18px 20px 20px}.tool-showcase__name{font-family:var(--font-display);font-weight:800;font-size:1.18rem;letter-spacing:-.015em;color:var(--color-ink);transition:color .18s ease}.tool-showcase__desc{color:var(--color-muted);font-size:.92rem;line-height:1.5;min-height:2.7em}.tool-showcase__cta{display:inline-flex;align-items:center;gap:7px;align-self:flex-start;margin-top:2px;color:var(--accent-ink);font-weight:700;font-size:.9rem}.tool-showcase__cta .ico{width:16px;height:16px;transition:transform .18s ease}a.tool-showcase__link:hover .tool-showcase__cta .ico,a.tool-showcase__link:focus-visible .tool-showcase__cta .ico{transform:translate(3px)}a.tool-showcase__link:hover .tool-showcase__name{color:var(--accent-ink)}.tool-showcase__cta--soon{color:var(--color-muted-light);font-weight:600}.tool-showcase__controls{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:16px}.tool-showcase__btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-ink-soft);box-shadow:var(--shadow-soft);transition:transform .18s ease,border-color .18s ease}.tool-showcase__btn .ico{width:17px;height:17px}.tool-showcase__btn:hover{transform:translateY(-1px);border-color:var(--color-border-strong)}.tool-showcase__btn--prev .ico{transform:rotate(180deg)}.tool-showcase__dots{display:flex;align-items:center;gap:8px}.tool-showcase__dot{width:8px;height:8px;padding:0;border:0;border-radius:999px;background:var(--color-border-strong);transition:width .2s ease,background-color .2s ease}.tool-showcase__dot:hover{background:var(--color-muted-light)}.tool-showcase__dot[aria-selected=true]{width:24px;background:var(--color-primary)}@media(prefers-reduced-motion:reduce){.tool-showcase__track{transition:none}}.icon-tile{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;flex:none;border-radius:12px;background:var(--color-primary-soft);color:var(--color-primary)}.icon-tile .ico{width:22px;height:22px}.icon-tile--mint{background:var(--color-mint-soft);color:var(--color-mint)}.icon-tile--green{background:var(--color-green-soft);color:var(--color-green)}.icon-tile--orange{background:var(--color-orange-soft);color:var(--color-orange)}.icon-tile--purple{background:var(--color-purple-soft);color:var(--color-purple)}.section-header{text-align:center;max-width:640px;margin:0 auto 32px}.eyebrow{margin:0 0 10px;color:var(--color-primary);font-size:.75rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.section-title{margin:0;font-family:var(--font-display);font-weight:800;font-size:clamp(1.7rem,3.4vw,2.1rem);line-height:1.1;letter-spacing:-.03em;color:var(--color-ink)}.section-sub{margin:12px auto 0;max-width:52ch;color:var(--color-muted);font-size:1.02rem;line-height:1.6}.tools{width:min(var(--max-w),calc(100% - 48px));margin:0 auto;padding:64px 0 16px}.tools-grid,.tools__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:22px}.tool-card{position:relative;display:flex;flex-direction:column;border-radius:var(--radius);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-card);overflow:hidden;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}a.tool-card:hover,a.tool-card:focus-visible{transform:translateY(-4px);border-color:var(--color-border-strong);box-shadow:var(--shadow-card-hover);outline:none}.tool-card__media{position:relative;display:grid;place-items:center;aspect-ratio:16 / 11;background:radial-gradient(circle at 50% 30%,color-mix(in srgb,var(--accent-soft) 92%,#fff),var(--accent-soft))}.tool-card__shot{width:100%;height:100%;object-fit:cover;object-position:top center}.tool-card__art{display:inline-flex;align-items:center;justify-content:center;width:74px;height:74px;border-radius:20px;background:#ffffffe6;border:1px solid rgba(255,255,255,.7);box-shadow:0 14px 26px -12px color-mix(in srgb,var(--accent-ink) 55%,transparent);color:var(--accent-ink);transition:transform .2s ease}[data-theme=dark] .tool-card__art{background:#ffffff14;border-color:#ffffff1f}.tool-card__art svg{width:38px;height:38px}a.tool-card:hover .tool-card__art{transform:translateY(-3px) scale(1.03)}.tool-card__badge{position:absolute;top:12px;right:12px;padding:4px 10px;border-radius:999px;font-size:.64rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;background:#ffffffd9;color:var(--color-muted);border:1px solid var(--color-border)}.tool-card__body{display:flex;flex-direction:column;gap:7px;padding:17px 18px 18px;flex:1}.tool-card__name{font-family:var(--font-display);font-weight:800;font-size:1.06rem;letter-spacing:-.01em;color:var(--color-ink)}.tool-card__desc{color:var(--color-muted);font-size:.86rem;line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.tool-card__foot{margin-top:auto;padding-top:12px;display:flex;align-items:center;justify-content:flex-end}.tool-card__arrow{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:999px;background:var(--accent-soft);color:var(--accent-ink);transition:transform .18s ease,background-color .18s ease}.tool-card__arrow .ico{width:17px;height:17px}a.tool-card:hover .tool-card__arrow{transform:translate(3px)}.view-all-wrap{display:flex;justify-content:center;padding:40px 0 0}.view-all{display:inline-flex;align-items:center;gap:9px;padding:12px 22px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-ink-soft);font-weight:700;font-size:.92rem;box-shadow:var(--shadow-soft);transition:transform .18s ease,border-color .18s ease}.view-all:hover{transform:translateY(-1px);border-color:var(--color-border-strong)}.view-all .ico{width:17px;height:17px;color:var(--color-muted)}.page{max-width:52rem;padding:clamp(2rem,4vw,3.5rem) clamp(20px,3vw,34px) clamp(4rem,9vw,6rem)}.page--wide{max-width:var(--max-w)}.page--center{text-align:center}.page__header{margin-bottom:clamp(2rem,5vw,3rem)}.page h1{margin:0 0 .7rem;font-family:var(--font-display);font-weight:800;font-size:clamp(2.2rem,6vw,3rem);line-height:1.06;letter-spacing:-.035em;color:var(--color-ink)}.page__lead{margin:0;max-width:48ch;color:var(--color-muted);font-size:1.08rem;line-height:1.6}.prose{color:var(--color-muted)}.prose h2{margin:2.2rem 0 .6rem;font-family:var(--font-display);font-weight:800;font-size:1.35rem;letter-spacing:-.02em;color:var(--color-ink)}.prose p{margin:0 0 1rem;font-size:1.02rem;line-height:1.65}.text-link{color:var(--color-primary);font-weight:600;border-bottom:1px solid color-mix(in srgb,var(--color-primary) 38%,transparent);transition:color .16s ease,border-color .16s ease}.text-link:hover{color:var(--color-primary-2);border-color:var(--color-primary-2)}.tool-group{margin-bottom:clamp(2.5rem,6vw,4rem)}.tool-group__head{margin-bottom:1.2rem}.tool-group__head h2{margin:0 0 .3rem;font-family:var(--font-display);font-weight:800;font-size:1.5rem;letter-spacing:-.02em;color:var(--color-ink)}.tool-group__head p{margin:0;color:var(--color-muted)}.tool-page{padding:clamp(1.4rem,3vw,2.2rem) clamp(20px,3vw,34px) clamp(4rem,9vw,6rem)}.breadcrumb{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;color:var(--color-muted-light);font-size:.85rem}.breadcrumb a{color:var(--color-muted)}.breadcrumb a:hover{color:var(--color-ink)}.tool-hero{margin-bottom:2rem}.tool-hero__eyebrow{margin:0 0 .5rem;color:var(--color-primary);font-size:.78rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.tool-hero__title{margin:0 0 .8rem;font-family:var(--font-display);font-weight:800;font-size:clamp(2.2rem,6vw,3rem);line-height:1.05;letter-spacing:-.035em;color:var(--color-ink)}.tool-hero__lead{margin:0 0 1.2rem;max-width:44rem;color:var(--color-muted);font-size:1.1rem;line-height:1.6}.tool-hero__chips{display:flex;flex-wrap:wrap;gap:.5rem}.chip{display:inline-flex;align-items:center;padding:.32rem .72rem;border-radius:999px;background:var(--color-surface-soft);border:1px solid var(--color-border);color:var(--color-muted);font-size:.78rem}.tool-embed{display:flex;flex-direction:column;gap:.5rem}.tool-stage{margin-bottom:2.5rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-card);padding:clamp(.5rem,1.5vw,.9rem)}.tool-frame{display:block;width:100%;height:78vh;min-height:32rem;border:0;border-radius:var(--radius-sm);background:var(--color-surface-soft)}.tool-embed__hint{margin:0;text-align:right;font-size:.85rem}.tool-section{margin-bottom:2.5rem}.tool-section h2{margin:0 0 1rem;font-family:var(--font-display);font-weight:800;font-size:1.5rem;letter-spacing:-.02em;color:var(--color-ink)}.tool-steps{margin:0;padding-left:1.3rem;color:var(--color-muted);line-height:1.7}.tool-faq details{border-bottom:1px solid var(--color-border);padding:.9rem 0}.tool-faq summary{cursor:pointer;color:var(--color-ink);font-weight:700}.tool-faq p{margin:.6rem 0 0;color:var(--color-muted)}.tool-placeholder{display:grid;gap:.4rem;place-items:center;text-align:center;padding:2rem;color:var(--color-muted)}.tool-placeholder__title{margin:0;color:var(--color-ink);font-weight:700}.tool-placeholder__note{margin:0}body.app-mode{overflow:hidden}.app-bar{display:flex;align-items:center;gap:11px;height:78px;padding:0 16px;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.app-bar__brand{display:inline-flex;align-items:center;border-radius:9px;transition:opacity .16s ease,transform .16s ease}.app-bar__brand:hover{opacity:.85;transform:translateY(-1px)}.app-bar__brand .pug-logo{width:40px;height:40px;border-radius:10px}.app-bar__sep{color:var(--color-muted-light);font-size:1.05rem}.app-bar__crumb{font-size:.9rem;font-weight:600;color:var(--color-muted);transition:color .16s ease}.app-bar__crumb:hover{color:var(--color-ink)}.app-bar__tool{font-family:var(--font-display);font-weight:700;font-size:1.78rem;color:var(--color-ink-soft)}.app-bar__pill{padding:3px 8px;border-radius:999px;font-size:.6rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;background:var(--color-primary-soft);color:var(--color-primary)}.app-bar__spacer{flex:1}.app-bar__action{display:inline-flex;align-items:center;gap:6px;padding:8px 13px;border-radius:10px;font-size:.86rem;font-weight:600;color:var(--color-muted);transition:color .16s ease,background-color .16s ease}.app-bar__action:hover{color:var(--color-ink);background:var(--color-primary-soft)}.tool-menu{position:relative;display:inline-flex}.tool-menu__trigger{cursor:pointer}.tool-menu__chevron{width:15px;height:15px;transition:transform .18s ease}.tool-menu__trigger[aria-expanded=true]{color:var(--color-ink);background:var(--color-primary-soft)}.tool-menu__trigger[aria-expanded=true] .tool-menu__chevron{transform:rotate(180deg)}.tool-menu__panel{position:absolute;top:calc(100% + 8px);right:0;z-index:60;width:min(300px,calc(100vw - 32px));max-height:min(70vh,540px);overflow-y:auto;padding:8px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-float);animation:tool-menu-in .16s ease}@keyframes tool-menu-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.tool-menu__group+.tool-menu__group{margin-top:6px;padding-top:6px;border-top:1px solid var(--color-border)}.tool-menu__group-label{margin:6px 10px 4px;font-size:.66rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--color-muted-light)}.tool-menu__item{display:flex;align-items:center;gap:11px;padding:8px 10px;border-radius:12px;color:var(--color-ink-soft);transition:background-color .14s ease}.tool-menu__item:hover,.tool-menu__item:focus-visible{background:var(--color-surface-soft);outline:none}.tool-menu__item[aria-current=page]{background:var(--color-primary-soft);color:var(--color-ink)}.tool-menu__icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;border-radius:9px;color:var(--accent-ink);background:var(--accent-soft)}.tool-menu__icon svg{width:18px;height:18px}.tool-menu__name{font-size:.88rem;font-weight:600}.tool-menu__all{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;padding:10px;border-top:1px solid var(--color-border);font-size:.82rem;font-weight:600;color:var(--color-primary);transition:color .14s ease}.tool-menu__all:hover{color:var(--color-primary-2)}.tool-menu__all .ico{width:16px;height:16px}.app-stage{width:100%;height:calc(100vh - 78px);height:calc(100dvh - 78px)}.app-mode--bare .app-stage{height:100vh;height:100dvh}.app-frame{display:block;width:100%;height:100%;border:0;background:var(--color-surface-soft)}.site-footer{width:min(var(--max-w),calc(100% - 48px));margin:32px auto 0;padding:34px 0 48px;border-top:1px solid var(--color-border);display:flex;align-items:flex-start;justify-content:space-between;gap:32px;flex-wrap:wrap}.footer-brand-mark{font-family:var(--font-display);font-weight:800;font-size:1.2rem;letter-spacing:-.02em;color:var(--color-ink)}.footer-tagline{margin:8px 0 0;color:var(--color-muted);font-size:.9rem}.footer-legal{margin:14px 0 0;color:var(--color-muted-light);font-size:.74rem;max-width:44ch}.footer-copy{margin:8px 0 0;color:var(--color-muted-light);font-size:.78rem}.footer-links{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.footer-nav-link{color:var(--color-muted);font-size:.9rem;font-weight:600;transition:color .16s ease}.footer-nav-link:hover{color:var(--color-ink)}.footer-icons{display:inline-flex;align-items:center;gap:8px}.social-link{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:12px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-muted);transition:color .18s ease,border-color .18s ease,transform .18s ease}.social-link .ico{width:18px;height:18px}.social-link:hover{color:var(--color-ink);border-color:var(--color-border-strong);transform:translateY(-2px)}@media(max-width:960px){.hero{grid-template-columns:1fr;gap:28px;padding:48px 0 40px}.hero-showcase{max-width:520px;justify-self:start;width:100%}}@media(max-width:680px){.nav{display:none}.brand{margin-right:auto}.site-header__inner,.hero,.tools,.site-footer{width:calc(100% - 36px)}.hero{padding:36px 0 32px}.hero-cta .btn{flex:1 1 auto}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.floating-card{animation:none}*{transition:none!important}}.whimsy-fx{position:fixed;inset:0;pointer-events:none;z-index:2147482000;overflow:hidden}.w-ripple{position:absolute;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--color-primary) 45%,transparent),transparent 65%);transform:translate(-50%,-50%) scale(0);opacity:.6;animation:w-ripple-out calc(.62s/max(.4,var(--w-ripple, 1))) cubic-bezier(.22,.61,.36,1) forwards}@keyframes w-ripple-out{to{transform:translate(-50%,-50%) scale(1);opacity:0}}.w-confetti{position:absolute;width:9px;height:9px;border-radius:2px;will-change:transform,opacity;animation:w-confetti-fly var(--w-life, .9s) cubic-bezier(.18,.7,.3,1) forwards}@keyframes w-confetti-fly{0%{transform:translate(0) rotate(0) scale(1);opacity:1}to{transform:translate(var(--tx, 0),var(--ty, 0)) rotate(var(--rot, 360deg)) scale(.4);opacity:0}}html[data-whimsy~=idle-float] .icon-tile,html[data-whimsy~=idle-float] .tool-card__art,html[data-whimsy~=idle-float] .tool-showcase__art,html[data-whimsy~=idle-float] .pt-icon-tile{animation:w-float calc(4.5s/max(.4,var(--w-idle-float, 1))) ease-in-out infinite}html[data-whimsy~=idle-float] .tool-card:nth-child(2n) .tool-card__art{animation-delay:-1.6s}html[data-whimsy~=idle-float] .tool-card:nth-child(3n) .tool-card__art{animation-delay:-2.7s}@keyframes w-float{0%,to{transform:translateY(0)}50%{transform:translateY(calc(-7px * var(--w-idle-float, 1)))}}html[data-whimsy~=idle-float] a.tool-card:hover .tool-card__art{animation-play-state:paused}html[data-whimsy~=logo-bounce] .pug-logo{animation:w-heartbeat calc(3.6s/max(.4,var(--w-logo-bounce, 1))) ease-in-out infinite;transform-origin:center 70%}html[data-whimsy~=logo-bounce] .app-bar__brand:hover .pug-logo,html[data-whimsy~=logo-bounce] .brand:hover{animation:w-wiggle .5s ease}@keyframes w-heartbeat{0%,88%,to{transform:scale(1) rotate(0)}92%{transform:scale(calc(1 + .06 * var(--w-logo-bounce, 1))) rotate(0)}96%{transform:scale(calc(1 + .03 * var(--w-logo-bounce, 1))) rotate(0)}}@keyframes w-wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-9deg) scale(1.08)}60%{transform:rotate(7deg) scale(1.08)}}html[data-whimsy~=spotlight] .tool-card,html[data-whimsy~=spotlight] .tool-showcase__viewport{position:relative}html[data-whimsy~=spotlight] .tool-card:before,html[data-whimsy~=spotlight] .tool-showcase__viewport:before{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit;opacity:0;pointer-events:none;background:radial-gradient(240px circle at var(--wsx, 50%) var(--wsy, 50%),color-mix(in srgb,var(--color-primary) 22%,transparent),transparent 60%);transition:opacity .3s ease}html[data-whimsy~=spotlight] .tool-card:hover:before,html[data-whimsy~=spotlight] .tool-showcase__viewport:hover:before{opacity:calc(1 * var(--w-spotlight, 1))}html[data-whimsy~=tilt] [data-w-tilt]{transform-style:preserve-3d;transition:transform .3s cubic-bezier(.22,.61,.36,1)}html[data-whimsy~=tilt] [data-w-tilt].is-tilting{transition:transform .08s linear}html[data-whimsy~=page-enter] body:not(.app-mode) .site-header,html[data-whimsy~=page-enter] body:not(.app-mode) .hero__copy>*,html[data-whimsy~=page-enter] body:not(.app-mode) .hero-showcase,html[data-whimsy~=page-enter] body:not(.app-mode) .section-header,html[data-whimsy~=page-enter] body:not(.app-mode) .tools-grid>*,html[data-whimsy~=page-enter] body:not(.app-mode) .page__header,html[data-whimsy~=page-enter] body:not(.app-mode) .tool-group{animation:w-enter .7s cubic-bezier(.22,.61,.36,1) both}html[data-whimsy~=page-enter] body:not(.app-mode) .hero__copy>*:nth-child(2){animation-delay:.07s}html[data-whimsy~=page-enter] body:not(.app-mode) .hero__copy>*:nth-child(3){animation-delay:.14s}html[data-whimsy~=page-enter] body:not(.app-mode) .hero-showcase{animation-delay:.2s}html[data-whimsy~=page-enter] body:not(.app-mode) .tools-grid>*:nth-child(1){animation-delay:.18s}html[data-whimsy~=page-enter] body:not(.app-mode) .tools-grid>*:nth-child(2){animation-delay:.26s}html[data-whimsy~=page-enter] body:not(.app-mode) .tools-grid>*:nth-child(3){animation-delay:.34s}html[data-whimsy~=page-enter] body:not(.app-mode) .tools-grid>*:nth-child(4){animation-delay:.42s}html[data-whimsy~=page-enter] body:not(.app-mode) .tools-grid>*:nth-child(n+5){animation-delay:.5s}@keyframes w-enter{0%{opacity:0;transform:translateY(26px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}html[data-whimsy~=scroll-reveal] [data-w-reveal]{opacity:0;transform:translateY(34px) scale(.98);transition:opacity .7s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1);transition-delay:var(--w-reveal-delay, 0ms)}html[data-whimsy~=scroll-reveal] [data-w-reveal].is-revealed{opacity:1;transform:translateY(0) scale(1)}
