:root,:root[data-theme=light]{--bg:#faf9f6;--panel:#ffffff;--panel-2:#f4f2ee;--border:#e5e0da;--border-strong:#d7d0c8;--text:#191817;--dim:#6f6a64;--accent:#3978a8;--accent-fg:#ffffff;--accent-2:#3978a8;--accent-2-fg:#ffffff;--clay:#a8a096;--whale:#3978a8;--whale-soft:#dcebf4;--wave:#9aa6b1;--sel-bg:#d6e8f3;--sel-fg:#16303f;--ok:#3f7d52;--warn:#8a6521;--err:#a8524f;--stage-bg:#ebe8e2;--region:#1f6feb;--region-manual:#1a7f4e;--shadow:0 4px 20px rgba(25,24,23,0.05);--dot-a:#3978a8;--dot-b:#7a736b;--art-field:#f1eeea;--art-ink:#2a2724;--art-line:#ddd7cf;--header-bg:#191817;--header-fg:#f6f4f0;--header-dim:#b3ada4;--header-line:#322e2a;--header-hover:#2b2724;--header-accent:#6198ba}:root[data-theme=dark]{--bg:#191817;--panel:#232120;--panel-2:#2d2a27;--border:#3a3733;--border-strong:#4a4640;--text:#faf9f6;--dim:#a8a29a;--accent:#8ab6d2;--accent-fg:#0d2534;--accent-2:#8ab6d2;--accent-2-fg:#0d2534;--clay:#b3aaa1;--whale:#6198ba;--whale-soft:#22333f;--wave:#4e5964;--sel-bg:#2f4351;--sel-fg:#eaf2f8;--ok:#87b795;--warn:#c8a97a;--err:#d29392;--stage-bg:#121110;--region:#58a6ff;--region-manual:#7ee2a8;--shadow:0 4px 24px rgba(0,0,0,0.5);--dot-a:#8ab6d2;--dot-b:#c6c0b9;--art-field:#2b2825;--art-ink:#efece7;--art-line:#3f3b36;--header-bg:color-mix(in srgb,var(--panel) 88%,transparent);--header-fg:var(--text);--header-dim:var(--dim);--header-line:var(--border);--header-hover:var(--panel-2);--header-accent:#6198ba}:root{--fg:var(--text);--text-xs:11px;--text-sm:12px;--text-md:14px;--text-lg:18px;--text-xl:30px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:40px;--radius-1:8px;--radius-2:12px;--radius-3:16px;--radius-4:20px;--shadow-lift:0 8px 24px rgba(25,24,23,0.08);--font-inter:Inter;--font-manrope:Manrope;--font-sans:var(--font-inter),system-ui,-apple-system,"Segoe UI",sans-serif;--font-display:var(--font-manrope),var(--font-inter),system-ui,sans-serif;--paper-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");--dot:5px}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%;background-color:var(--bg);background-image:var(--paper-grain);color:var(--text);font:14px/1.5 var(--font-sans);scrollbar-color:var(--border) transparent}::selection{background:var(--sel-bg);color:var(--sel-fg)}::-moz-selection{background:var(--sel-bg);color:var(--sel-fg)}input,textarea{caret-color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button{font:inherit;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:6px 12px;cursor:pointer;white-space:nowrap}button:hover:not(:disabled){border-color:var(--dim)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--text);border-color:var(--text);color:var(--bg);font-weight:600}button.primary:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 22%,var(--text));border-color:color-mix(in srgb,var(--accent) 22%,var(--text))}.btn-brand,button.brand{background:var(--accent-2);border-color:var(--accent-2);color:var(--accent-2-fg);font-weight:600}.btn-brand:hover,button.brand:hover:not(:disabled){filter:brightness(1.06)}button.wide{width:100%}button.toggled{background:var(--panel-2);border-color:var(--text);color:var(--text);font-weight:600}.app{flex-direction:column;height:100%}.app,.body{display:flex}.body{flex:1 1;min-height:0}.topbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;row-gap:var(--space-2);padding:10px 14px;border-bottom:1px solid var(--border);background:var(--panel)}.topbar .brand .h1{display:block;margin:0;font-size:16px;font-weight:650;line-height:1.1}.topbar .wordmark{font-weight:700;letter-spacing:-.01em;color:var(--text);text-decoration:none;padding:4px 8px;border-radius:var(--radius-1)}.topbar .wordmark:hover{background:var(--panel-2)}.topbar .brand .tagline{font-size:11px;color:var(--dim)}.topbar .spacer{flex:1 1}.topbar .group{display:inline-flex}.topbar .group button{border-radius:0;margin-left:-1px}.topbar .group button:first-child{border-radius:6px 0 0 6px;margin-left:0}.topbar .group button:last-child{border-radius:0 6px 6px 0}.topbar .zoom-label{min-width:56px}button.icon-btn{display:inline-flex;align-items:center;gap:6px}.tbar-icon{flex:none;color:var(--dim)}button.toggled .tbar-icon{color:inherit}.pill{border:1px solid var(--border);background:var(--panel-2);border-radius:999px;padding:4px 11px;font-size:12px;white-space:nowrap}.pill.ok{color:var(--ok)}.pill.err{color:var(--err)}.pill.dim,.statusbar{color:var(--dim)}.statusbar{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;row-gap:var(--space-1);padding:7px 14px;border-top:1px solid var(--border);background:var(--panel);font-size:12px}.statusbar .hint{opacity:.8}.stage{flex:1 1;position:relative;overflow:hidden;touch-action:none;background:var(--stage-bg);background-image:linear-gradient(45deg,rgba(128,128,128,.06) 25%,transparent 0,transparent 75%,rgba(128,128,128,.06) 0),linear-gradient(45deg,rgba(128,128,128,.06) 25%,transparent 0,transparent 75%,rgba(128,128,128,.06) 0);background-size:24px 24px;background-position:0 0,12px 12px}.stage-world{position:absolute;top:0;left:0;transform-origin:0 0;box-shadow:var(--shadow)}.stage[data-pan-armed] .stage-world,.stage[data-pan-armed] .stage-world *{cursor:inherit}.stage-world .overlay{position:absolute;top:0;left:0;overflow:visible;touch-action:none}.overlay .region{fill:transparent;stroke:var(--region);cursor:move}.overlay .region.manual{stroke:var(--region-manual)}.overlay .region:hover{fill:color-mix(in srgb,var(--region) 8%,transparent)}.overlay .region.selected{stroke-dasharray:none;fill:color-mix(in srgb,var(--region) 5%,transparent)}.overlay .region-ghost{fill:transparent;stroke:var(--dim);opacity:.55;cursor:pointer}.overlay .region-ghost:hover{opacity:1;stroke:var(--region)}.overlay .handle{fill:var(--panel);stroke:var(--region)}.overlay .region-x circle{fill:var(--panel);stroke:var(--border);stroke-width:1}.overlay .region-x path{stroke:var(--err);fill:none}.overlay .region-x{cursor:pointer}.overlay .region-x:hover circle{fill:var(--err)}.overlay .region-x:hover path{stroke:var(--accent-fg)}.panel{width:280px;border-left:1px solid var(--border);background:var(--panel);padding:14px;display:flex;flex-direction:column;gap:18px;overflow-y:auto}.panel h3{margin:0 0 8px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--dim)}.panel .note{margin:8px 0 0;font-size:12px;color:var(--dim)}.panel .row{display:flex;align-items:center;gap:10px;margin:8px 0;font-size:13px}.panel .row>span:first-child{flex:0 0 72px;color:var(--dim)}.panel .row input[type=range]{flex:1 1;min-width:0;accent-color:var(--accent)}.panel .row .val{flex:0 0 52px;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:12px}.panel .row input[type=color]{width:44px;height:28px;padding:2px;border:1px solid var(--border);border-radius:6px;background:var(--panel-2)}.segmented{display:grid;grid-template-columns:1fr 1fr;grid-gap:6px;gap:6px}.segmented button{padding:7px 4px;font-size:13px}.segmented button.on{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.panel h2{margin:0 0 8px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--dim)}.panel .hint{margin:8px 0 0;font-size:12px;line-height:1.45;color:var(--dim)}.panel select{width:100%;padding:7px 8px;font-size:13px;color:inherit;background:var(--panel-2);border:1px solid var(--border);border-radius:6px}.seg{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);grid-gap:6px;gap:6px}.seg button{padding:7px 4px;font-size:13px;line-height:1.3;min-width:0}.seg button small{display:block;font-size:10px;opacity:.7;overflow:hidden;text-overflow:ellipsis}.seg button.on{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.pagestrip{display:flex;align-items:center;gap:10px;padding:8px 12px;border-top:1px solid var(--border);background:var(--panel);font-size:13px}.pagestrip button{padding:3px 10px}.pagestrip .pageno{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.pagestrip .note{color:var(--err);font-size:12px;margin-left:auto}.pips{display:flex;flex-wrap:wrap;gap:3px;align-items:center}.pips button{width:12px;height:12px;padding:0;border-radius:3px;border:1px solid var(--border)}.pips button.unscanned{background:transparent}.pips button.clean{background:var(--dim);border-color:var(--dim)}.pips button.covered{background:var(--accent);border-color:var(--accent)}.pips button.here{outline:2px solid var(--fg);outline-offset:1px}.panel input[type=text]{width:100%;padding:7px 8px;font-size:13px;color:inherit;background:var(--panel-2);border:1px solid var(--border);border-radius:6px}.chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.chips button{padding:4px 9px;font-size:12px;border-radius:999px}.chips button.on{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.panel .tally{margin:10px 0 0;font-size:12px;color:var(--dim)}.panel .tally strong{color:var(--fg);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.panel .tally strong.warn,.panel .warn{color:var(--err)}.panel button.wide{width:100%;margin-top:10px}.ocr-lines{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:2px;max-height:46vh;overflow-y:auto}.ocr-lines li{display:flex;gap:8px;align-items:baseline;padding:5px 7px;font-size:12px;border-radius:5px;background:var(--panel-2);cursor:default}.ocr-lines li:hover{background:var(--border)}.ocr-lines .txt{flex:1 1;min-width:0;word-break:break-word}.ocr-lines .score{flex:0 0 auto;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:11px;color:var(--dim)}.ocr-lines li.low{border-left:2px solid var(--err)}.ocr-lines li.low .score{color:var(--err)}.dropzone{flex:1 1;margin:24px;border:2px dashed var(--border);border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;cursor:pointer;color:var(--dim);text-align:center}.dropzone:hover{border-color:var(--accent)}.dropzone strong{color:var(--text);font-size:17px}.dropzone .dz-icon{font-size:42px;opacity:.5}.dropzone .dz-privacy{font-size:12px;margin-top:10px;opacity:.9}.dropzone .dz-preparing{font-size:12px;margin-top:18px;padding:10px 14px;background:var(--panel);border:1px solid var(--border);border-radius:8px;line-height:1.6}.tool-surface{min-height:0}.stage-col,.tool-surface{flex:1 1;display:flex;flex-direction:column;min-width:0}.stage-col .stage{flex:1 1}.editing-result{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);background:var(--panel-2);color:var(--dim);font-size:var(--text-sm)}.editing-result strong{color:var(--text);font-weight:600}.timeline{--tl-row:10px;--tl-tracks-h:calc(var(--tl-row) * 5 + 6px);border-top:1px solid var(--border);background:var(--panel);padding:6px 10px 10px;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none}.tl-ruler{position:relative;height:22px;cursor:pointer;border-bottom:1px solid var(--border)}.tl-tick{top:2px;font-size:10px;color:var(--dim);transform:translateX(2px)}.tl-playhead,.tl-tick{position:absolute;pointer-events:none}.tl-playhead{top:0;bottom:calc(-1 * var(--tl-tracks-h));width:2px;background:var(--accent);z-index:2}.tl-tracks{position:relative;height:var(--tl-tracks-h);margin-top:4px}.tl-bar{position:absolute;height:8px;min-width:4px;border-radius:4px;background:var(--region);opacity:.75;cursor:pointer}.tl-bar:before{content:"";position:absolute;inset:-4px}.tl-bar.manual{background:var(--region-manual)}.tl-bar.disabled{opacity:.25}.tl-bar.selected{opacity:1;outline:2px solid var(--accent);z-index:1}.tl-trim{position:absolute;top:-3px;bottom:-3px;width:8px;background:var(--accent);border-radius:3px;cursor:ew-resize}.tl-trim:before{content:"";position:absolute;inset:-10px -8px}.tl-trim.left{left:-4px}.tl-trim.right{right:-4px}.analysis-strip{display:flex;align-items:center;gap:12px;padding:8px 12px;border-top:1px solid var(--border);background:var(--panel);font-size:13px}.analysis-strip progress{flex:1 1;height:6px;accent-color:var(--accent)}.dz-error{font-size:13px;margin-top:14px;padding:10px 14px;color:var(--err);background:var(--panel);border:1px solid var(--err);border-radius:8px;max-width:440px}.tool-viewport{height:clamp(540px,74vh,860px);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-3);box-shadow:var(--shadow);overflow:hidden}.tool-viewport.is-expanded{position:fixed;inset:0;z-index:50;width:100vw;height:100vh;height:100dvh;max-height:none;min-height:0;margin:0;border:none;border-radius:0;overflow:hidden}.tool-viewport.is-expanded .app{height:100%}body.vth-expanded{overflow:hidden}.page-content{max-width:880px;margin:0 auto;padding:var(--space-6) var(--space-5);line-height:1.65}.tool-shell .page-content{margin-inline:0;padding-inline:0}.page-content h1{font-size:var(--text-xl);margin:0 0 var(--space-2)}.page-content h2{font-size:var(--text-lg);margin:var(--space-6) 0 var(--space-2)}.page-content .lede{color:var(--dim);font-size:15px;margin:0 0 var(--space-4)}.page-content .steps{display:grid;grid-gap:var(--space-3);gap:var(--space-3);padding:0;margin:var(--space-4) 0;list-style:none;counter-reset:step}.page-content .steps li{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-2);padding:var(--space-3) var(--space-4);counter-increment:step}.page-content .steps li:before{content:counter(step);display:inline-block;width:22px;height:22px;margin-right:var(--space-2);text-align:center;line-height:22px;border-radius:999px;background:var(--accent);color:var(--accent-fg);font-size:var(--text-sm);font-weight:600}.page-content .faq dt{font-weight:600;margin-top:var(--space-4)}.page-content .faq dd{margin:var(--space-1) 0 0;color:var(--dim)}.page-content ol,.page-content ul{margin:var(--space-2) 0 var(--space-3);padding-left:24px}.page-content li{margin:6px 0}.page-content li::marker{color:var(--dim)}.contact-form{display:grid;grid-gap:var(--space-3);gap:var(--space-3);max-width:560px;margin:var(--space-4) 0}.contact-form label{display:grid;grid-gap:6px;gap:6px;font-weight:600;font-size:var(--text-sm)}.contact-form input,.contact-form textarea{font:inherit;font-weight:400;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-2);padding:10px 12px}.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--accent)}.contact-form textarea{resize:vertical;min-height:140px}.contact-form .hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.contact-form button{justify-self:start}.form-error{color:var(--err);font-size:var(--text-sm);margin:0}.form-note{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-2);padding:var(--space-3) var(--space-4);margin:var(--space-4) 0}.related-tools{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:var(--space-3);gap:var(--space-3);margin:var(--space-4) 0;padding:0;list-style:none}.related-tools a{display:block;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-2);padding:var(--space-3) var(--space-4);color:var(--text);text-decoration:none}.related-tools a:hover{border-color:var(--accent)}.related-tools .t{font-weight:600;display:block}.related-tools .d{font-size:var(--text-sm);color:var(--dim)}.hub{min-height:100dvh;display:flex;flex-direction:column}.hub-main{flex:1 1;max-width:1080px;width:100%;margin:0 auto;padding:var(--space-6) var(--space-5)}.hub-hero{text-align:center;padding:var(--space-6) 0}.hub-hero h1{font-size:34px;margin:0 0 var(--space-2);letter-spacing:-.01em}.hub-hero .lede{color:var(--dim);font-size:16px;margin:0 auto var(--space-4);max-width:560px}.hub-group{margin:var(--space-6) 0}.hub-group h2{font-size:var(--text-lg);font-weight:650;letter-spacing:-.01em;color:var(--text);margin:0 0 var(--space-3)}.hub-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));grid-gap:var(--space-3);gap:var(--space-3)}.hub-cards a{display:block;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-3);padding:var(--space-4);color:var(--text);text-decoration:none;transition:border-color .12s}.hub-cards a:hover{border-color:var(--accent)}.hub-cards .t{font-weight:650;display:block;margin-bottom:2px}.hub-cards .d{font-size:var(--text-sm);color:var(--dim)}.site-footer{border-top:1px solid var(--border);background:var(--panel);padding:var(--space-6) var(--space-5);font-size:var(--text-sm)}.site-footer .cols{max-width:1080px;margin:0 auto;columns:180px 5;column-gap:var(--space-5)}.site-footer .cols>div{page-break-inside:avoid;break-inside:avoid;margin-bottom:var(--space-5)}.site-footer h3{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--dim);margin:0 0 var(--space-2)}.site-footer ul{list-style:none;margin:0;padding:0;display:grid;grid-gap:6px;gap:6px}.site-footer a{color:var(--dim);text-decoration:none}.site-footer a:hover{color:var(--text)}.site-footer .fineprint{max-width:1080px;margin:var(--space-5) auto 0;color:var(--dim);border-top:1px solid var(--border);padding-top:var(--space-3)}.adslot{display:flex;align-items:center;justify-content:center;border:1px dashed var(--border);border-radius:var(--radius-2);background:color-mix(in srgb,var(--panel-2) 55%,var(--bg));color:var(--dim);font-size:var(--text-xs);position:relative}.adslot:before{content:"Ad";position:absolute;top:4px;left:8px;border:1px solid var(--border);border-radius:4px;padding:0 5px;letter-spacing:.08em}.adslot:after{content:"Advertisement space"}.adslot.leaderboard{min-height:90px;margin:var(--space-4) auto;max-width:728px;width:100%}.adslot.below-result{min-height:250px;margin:var(--space-5) auto;max-width:728px}.adslot.footer-banner{min-height:90px;margin:var(--space-4) auto;max-width:728px}.adslot.rail-ad{min-height:250px;width:100%}.hub-drop{display:block;max-width:560px;margin:0 auto;padding:var(--space-5);border:2px dashed var(--border);border-radius:var(--radius-3);color:var(--dim);cursor:pointer}.hub-drop.over,.hub-drop:hover{border-color:var(--accent);color:var(--text)}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:20;gap:var(--space-3);height:56px;padding:0 var(--space-5);background:var(--header-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--header-line)}.site-header,.site-header .wordmark{display:flex;align-items:center;color:var(--header-fg)}.site-header .wordmark{gap:9px;font-family:var(--font-display);font-weight:800;letter-spacing:-.02em;font-size:16px;text-decoration:none;white-space:nowrap;flex:none}.wordmark-whale{width:27px;height:auto;flex:none;color:var(--whale)}.site-header .wordmark-whale{color:#6198ba}:root[data-theme=dark] .site-header .wordmark-whale{color:var(--whale)}.site-header .spacer{flex:1 1}.site-header .alltools{color:var(--header-accent);font-weight:600;text-decoration:none;font-size:13px;padding:6px 10px;border-radius:var(--radius-1)}.site-header .alltools:hover,.site-header>button{background:var(--header-hover)}.site-header>button{color:var(--header-fg);border-color:var(--header-line)}.site-header>button:hover:not(:disabled){border-color:var(--header-dim)}.site-header>.site-search{background:var(--header-hover);border-color:var(--header-line)}.site-header>.site-search:focus-within{border-color:var(--header-accent)}.site-header>.site-search .ss-icon{color:var(--header-dim)}.site-header>.site-search .ss-input{color:var(--header-fg)}.site-header>.site-search .ss-input::placeholder{color:var(--header-dim)}.site-header>.site-search .ss-kbd{color:var(--header-dim);background:transparent;border-color:var(--header-line)}.site-header :focus-visible{outline-color:var(--header-accent)}.site-header nav{display:flex;gap:2px;align-self:stretch}.nav-dd{position:relative}.nav-dd,.nav-dd .dd-trigger{display:flex;align-items:center}.nav-dd .dd-trigger{gap:5px;cursor:pointer;font-size:13px;color:var(--header-dim);text-decoration:none;padding:6px 10px;border-radius:var(--radius-1);transition:color .2s,background .2s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.nav-dd .dd-chev{transition:transform .2s ease}.nav-dd:focus-within .dd-trigger,.nav-dd:hover .dd-trigger{color:var(--header-fg);background:var(--header-hover)}.nav-dd:focus-within .dd-chev,.nav-dd:hover .dd-chev{transform:rotate(180deg)}.nav-dd .dd-panel{position:absolute;top:calc(100% + 1px);left:0;z-index:30;min-width:260px;width:max-content;max-width:min(1040px,calc(100vw - var(--space-5) * 2));background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-2);box-shadow:var(--shadow-lift);padding:var(--space-3);display:grid;grid-gap:2px;gap:2px;opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .16s ease,transform .16s ease,visibility 0s linear .2s}.cat-nav .nav-dd:nth-child(n+4) .dd-panel{left:auto;right:0;max-width:560px}.cat-nav .nav-dd:nth-child(n+4) .dd-cols{display:grid;grid-template-columns:repeat(2,minmax(170px,max-content))}.nav-dd .dd-panel:before{content:"";position:absolute;left:0;right:0;top:-18px;height:18px}.nav-dd:focus-within .dd-panel,.nav-dd:hover .dd-panel{opacity:1;visibility:visible;transform:none;transition-delay:0s}@media (prefers-reduced-motion:reduce){.nav-dd .dd-chev{transition:none}.nav-dd .dd-panel{transform:none;transition:visibility 0s linear .15s}.nav-dd:focus-within .dd-panel,.nav-dd:hover .dd-panel{transition:none}}.nav-dd .dd-panel a{display:block;padding:7px 10px;border-radius:var(--radius-1);font-size:13px;color:var(--text);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .2s}.nav-dd .dd-panel a:hover{background:var(--panel-2)}.nav-dd .dd-cols{display:flex;flex-wrap:wrap;gap:var(--space-4)}.nav-dd .dd-col{display:grid;grid-gap:1px;gap:1px;align-content:start;min-width:170px}.nav-dd .dd-col-head{display:flex;align-items:center;gap:7px;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;font-weight:650;color:var(--dim);padding:4px 10px 8px}.nav-dd .dd-col-head .grp-icon{color:var(--grp-hue,var(--accent));flex:none}.nav-dd .dd-cols>.dd-col:nth-child(odd){--grp-hue:var(--dot-a)}.nav-dd .dd-cols>.dd-col:nth-child(2n){--grp-hue:var(--dot-b)}.nav-dd .dd-panel .seeall{color:var(--accent);font-weight:600;border-top:1px solid var(--border);border-radius:0;margin-top:4px;padding-top:10px}.tool-shell{max-width:1240px;margin:0 auto;padding:0 var(--space-5)}.tool-head{padding:var(--space-5) 0 var(--space-4)}.breadcrumb{font-size:var(--text-sm);color:var(--dim);margin:0 0 var(--space-2)}.breadcrumb a{color:var(--dim);text-decoration:none}.breadcrumb a:hover{color:var(--accent)}.tool-head h1{font-size:var(--text-xl);font-weight:700;letter-spacing:-.02em;margin:0 0 4px}.tool-head .promise{color:var(--dim);font-size:var(--text-md);margin:0}.tool-head .promise .okdot{color:var(--ok)}.tool-layout{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:var(--space-4);gap:var(--space-4);align-items:start}@media (min-width:1280px){.tool-layout{grid-template-columns:minmax(0,1fr) 300px}}.rail{display:none}@media (min-width:1280px){.rail{display:flex;flex-direction:column;gap:var(--space-4);position:-webkit-sticky;position:sticky;top:72px}}.rail-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-3);box-shadow:var(--shadow);padding:var(--space-3) var(--space-4)}.rail-card h2{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--dim);margin:0 0 var(--space-2)}.rail-card nav{display:flex;flex-direction:column}.rail-card nav a{font-size:13px;color:var(--text);text-decoration:none;padding:6px 8px;border-radius:var(--radius-1);transition:background .2s}.rail-card nav a:hover{background:var(--panel-2)}.rail-card nav a[aria-current=page]{color:var(--accent);font-weight:600}.hub-cat-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin:0 0 var(--space-3)}.hub-cat-head h2{margin:0}.cat-head-text{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px var(--space-3);min-width:0;flex:1 1}.hub-cat-head .blurb{font-size:var(--text-sm);color:var(--dim)}.hub-cat-head .cat-link{margin-left:auto;font-size:var(--text-sm);color:var(--accent);text-decoration:none;white-space:nowrap}.hub-cat-head .cat-link:hover{text-decoration:underline}.hub-cards a{box-shadow:var(--shadow);transition:border-color .2s,box-shadow .2s,transform .2s}.hub-cards a:hover{box-shadow:var(--shadow-lift);transform:scale(1.02)}@media (prefers-reduced-motion:reduce){.hub-cards a:hover{transform:none}}.cat-index{max-width:1080px;margin:0 auto;padding:var(--space-6) var(--space-5);font-size:16px;line-height:1.6}.cat-index h1{font-size:var(--text-xl);letter-spacing:-.02em;margin:0 0 var(--space-2)}.cat-index .lede{color:var(--dim);margin:0 0 var(--space-5);max-width:65ch}.cat-head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center;grid-gap:clamp(20px,4vw,56px);gap:clamp(20px,4vw,56px);margin:0 0 var(--space-6)}.cat-head-words{min-width:0}.cat-head-words h1{margin:0 0 var(--space-3)}.cat-head-words .lede{margin:0;max-width:46ch}.cat-art{width:100%;max-width:168px;height:auto;justify-self:center;pointer-events:none}@media (max-width:899.98px){.cat-head{grid-template-columns:minmax(0,1fr);gap:var(--space-4)}.cat-art{order:-1;max-width:96px;justify-self:start}}.cat-mark{width:56px;height:56px;flex:none;pointer-events:none}@media (max-width:767.98px){.cat-mark{width:44px;height:44px}}.fam-groups{display:grid;grid-gap:var(--space-5);gap:var(--space-5)}.fam-groups.expanded{gap:var(--space-6)}.fam-group-head{display:flex;align-items:center;gap:8px;margin:0 0 var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--border);font-size:var(--text-xs);font-weight:650;text-transform:uppercase;letter-spacing:.08em;color:var(--dim)}.fam-group-head .grp-icon{color:var(--grp-hue,var(--accent));flex:none}.fam-groups>.fam-group:nth-child(odd){--grp-hue:var(--dot-a)}.fam-groups>.fam-group:nth-child(2n){--grp-hue:var(--dot-b)}.fam-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));grid-gap:var(--space-3);gap:var(--space-3)}.fam-card{display:block;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-3);padding:var(--space-4);color:var(--text);text-decoration:none;box-shadow:var(--shadow);transition:border-color .2s,box-shadow .2s,transform .2s}.fam-card:hover{border-color:var(--accent);box-shadow:var(--shadow-lift);transform:scale(1.02)}.fam-card .t{display:block;font-weight:650;margin-bottom:3px}.fam-card .d{display:block;font-size:var(--text-sm);color:var(--dim)}.fam-card .n{display:inline-block;margin-top:var(--space-3);padding:2px 8px;border:1px solid var(--border);border-radius:999px;font-size:var(--text-xs);color:var(--dim)}@media (prefers-reduced-motion:reduce){.fam-card:hover{transform:none}}.fam-groups.expanded .fam-cards{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.fam-block{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-3);padding:var(--space-4);box-shadow:var(--shadow)}.fam-head{display:block;color:var(--text);text-decoration:none}.fam-head .t{display:block;font-weight:650;margin-bottom:3px}.fam-head .d{display:block;font-size:var(--text-sm);color:var(--dim)}.fam-head:hover .t{color:var(--accent)}.fam-members{list-style:none;display:flex;flex-wrap:wrap;gap:6px 12px;margin:var(--space-3) 0 0;padding:var(--space-3) 0 0;border-top:1px solid var(--border)}.fam-members a{font-size:13px;color:var(--dim);text-decoration:none}.fam-members a:hover{color:var(--accent);text-decoration:underline}@media (max-width:767.98px){.tool-viewport{height:auto;min-height:78vh;overflow:visible}.app{height:auto}.body{flex-direction:column}.stage-col{flex:0 0 auto}.stage-col .stage{min-height:52vh}.panel{width:auto;border-left:none;border-top:1px solid var(--border);overflow-y:visible;padding:var(--space-3)}.panel .row>span:first-child{flex:0 0 84px}.ocr-lines{max-height:40vh}.dropzone{flex:0 0 auto;min-height:46vh;margin:var(--space-4)}.dropzone .dz-icon{font-size:34px}.topbar .brand{display:none}.topbar .spacer{flex:0 0 100%;height:0;margin:0}.topbar .gpu-chip-wrap{order:-1}.topbar .group.zoom{display:none}.topbar [data-testid=download]{margin-left:auto}.site-header{position:static}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:15;border-radius:var(--radius-3) var(--radius-3) 0 0}.tool-viewport.is-expanded .body{overflow-y:auto}.tool-viewport.is-expanded .stage-col{flex:1 1 auto}.tool-viewport.is-expanded .stage-col .stage{min-height:60vh}.tool-viewport.is-expanded .topbar{border-radius:0}.statusbar .hint{display:none}.statusbar{padding:7px var(--space-3)}.cat-index,.hub-main,.tool-shell{padding-left:var(--space-3);padding-right:var(--space-3)}.page-content{padding:var(--space-5) var(--space-3)}.site-footer{padding-left:var(--space-3);padding-right:var(--space-3)}.site-header{padding:0 max(var(--space-3),env(safe-area-inset-left))}.hub-hero{padding:var(--space-4) 0}.hub-hero h1{font-size:26px}.tool-head h1{font-size:24px}.page-content h1{font-size:26px}.hub-cat-head .cat-link{margin-left:0;flex-basis:100%}.hub-drop{padding:var(--space-4)}.adslot.below-result,.adslot.footer-banner,.adslot.leaderboard{margin-left:0;margin-right:0}}@media (max-width:1023.98px){.panel{width:240px;padding:12px}.panel .row>span:first-child{flex:0 0 64px}}@media (pointer:coarse){.contact-form input,.panel .row,.panel input[type=text],.panel select,.topbar .gpu-chip,button,select{min-height:44px}.panel .row input[type=color]{width:52px;height:36px}input[type=range]{height:32px}.seg button,.segmented button{padding:12px 6px}.chips button,.pagestrip button{padding:10px 14px}.pips{gap:6px;touch-action:manipulation}.pips button{width:32px;height:32px;min-height:32px;border-radius:8px}.timeline{--tl-row:18px}.tl-bar{height:14px;border-radius:7px}.tl-trim{width:16px}.tl-ruler{height:32px}.nav-dd .dd-trigger,.rail-card nav a,.site-header .alltools{min-height:44px;display:flex;align-items:center}}.site-search{position:relative;display:flex;align-items:center;gap:6px;min-width:0;flex:0 1 260px;padding:0 10px;border:1px solid var(--border);border-radius:var(--radius-1);background:var(--panel-2)}.site-search:focus-within{border-color:var(--accent)}.site-search .ss-icon{flex:none;color:var(--dim)}.ss-input{flex:1 1 auto;min-width:0;font:inherit;font-size:13px;color:var(--text);background:transparent;border:0;padding:8px 0;outline:none}.ss-input::-webkit-search-cancel-button{display:none}.ss-kbd{flex:none;font:inherit;font-size:10px;color:var(--dim);border:1px solid var(--border);border-radius:4px;padding:1px 5px}.ss-kbd,.ss-panel{background:var(--panel)}.ss-panel{position:absolute;top:calc(100% + 6px);left:0;right:0;min-width:260px;z-index:30;display:flex;flex-direction:column;padding:var(--space-1);border:1px solid var(--border);border-radius:var(--radius-2);box-shadow:var(--shadow-lift);max-height:min(70vh,460px);overflow-y:auto}.ss-hit{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);padding:9px 10px;border-radius:var(--radius-1);color:var(--text);text-decoration:none}.ss-hit.active{background:var(--panel-2)}.ss-hit .t{font-size:13px}.ss-hit .k{font-size:var(--text-xs);color:var(--dim);white-space:nowrap}.ss-empty{margin:0;padding:10px;font-size:13px;color:var(--dim)}.ss-empty a{color:var(--accent)}.mn-drawer,.mobile-nav{display:contents}.mn-toggle{display:none}@media (max-width:1023.98px){.mobile-nav{display:block;position:static}.mn-toggle{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;color:var(--header-fg);background:transparent;border:1px solid transparent}.mn-toggle:hover{background:var(--header-hover)}.mn-drawer{position:absolute;top:100%;left:0;right:0;z-index:25;display:none;max-height:70vh;overflow-y:auto;padding:var(--space-3);background:var(--panel);border-bottom:1px solid var(--border);box-shadow:var(--shadow-lift)}.mobile-nav[data-open] .mn-drawer{display:block}.mn-drawer .cat-nav{flex-direction:column;gap:var(--space-1)}.mn-drawer .nav-dd{position:static;display:block}.mn-drawer .dd-trigger{justify-content:space-between;font-size:var(--text-md);color:var(--text);padding:10px 8px}.mn-drawer .nav-dd:focus-within .dd-trigger,.mn-drawer .nav-dd:hover .dd-trigger{color:var(--text);background:var(--panel-2)}.mn-drawer .dd-chev,.mn-drawer .dd-panel,.site-header .alltools{display:none}.site-search{flex:1 1 auto}.ss-kbd{display:none}}@media (max-width:639.98px){.site-header .wordmark{font-size:0;gap:0}.site-header .wordmark-whale{width:30px}}@media (hover:none){.nav-dd .dd-panel{display:none}}.hero-band{position:relative;isolation:isolate;overflow:hidden;background:var(--bg);color:var(--text);border-bottom:1px solid var(--border)}.hero-backdrop{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}.hero-inner{max-width:1140px;margin:0 auto;padding:clamp(44px,8vh,88px) var(--space-5) var(--space-6);display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);align-items:center;grid-gap:clamp(24px,5vw,72px);gap:clamp(24px,5vw,72px)}.hero-words{min-width:0}.hero-figure{min-width:0;display:flex;justify-content:center}.hero-whale{width:100%;max-width:440px;height:auto;color:var(--whale);pointer-events:none}@media (prefers-reduced-motion:no-preference){.hero-whale{animation:whale-float 9s ease-in-out 1.2s infinite alternate}}@keyframes whale-float{0%{transform:translateZ(0)}to{transform:translate3d(0,-6px,0)}}.hero-eyebrow{display:flex;align-items:center;gap:10px;margin:0 0 var(--space-4);font-size:var(--text-sm);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}.hero-eyebrow .dot{width:var(--dot);height:var(--dot);flex:none;border-radius:50%;background:var(--whale)}.hero-inner h1{font-family:var(--font-display);font-size:clamp(40px,5.6vw,66px);line-height:1;letter-spacing:-.045em;font-weight:800;color:var(--text);margin:0 0 var(--space-4);text-wrap:balance}.hero-inner .lede{max-width:48ch;margin:0 0 var(--space-5);font-size:clamp(16px,1.35vw,18px);line-height:1.6;color:var(--dim);text-wrap:pretty}.hero-band .hub-drop{max-width:100%;margin:0;padding:var(--space-5);color:var(--text);background:var(--panel);border:1.5px dashed color-mix(in srgb,var(--accent) 55%,var(--border));border-radius:var(--radius-3);box-shadow:var(--shadow);transition:border-color .2s,background .2s,box-shadow .2s}.hero-band .hub-drop.over,.hero-band .hub-drop:hover{border-color:var(--accent);background:color-mix(in srgb,var(--clay) 9%,var(--panel));box-shadow:var(--shadow-lift)}.hub-drop .dz-main{display:block;font-size:16px;font-weight:600}.hub-drop .dz-hint{display:block;margin-top:4px;font-size:var(--text-sm);color:var(--dim)}.hero-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-3) var(--space-5);margin:var(--space-4) 0 0;font-size:var(--text-md)}.hero-browse{color:var(--text);font-weight:650;text-decoration:none;border-bottom:2px solid var(--clay);padding-bottom:1px;transition:border-color .2s}.hero-browse:hover{border-bottom-color:var(--text)}.hero-facts{display:inline-flex;align-items:center;gap:10px;font-size:var(--text-sm);line-height:1.5;color:var(--dim)}.hero-facts .sep{width:3px;height:3px;flex:none;border-radius:50%;background:var(--border-strong)}.proof-mark{width:6px;height:6px;flex:none;align-self:center;border-radius:50%;background:var(--accent-2);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-2) 18%,transparent)}.hero-words>*{animation:hero-rise .7s cubic-bezier(.22,1,.36,1) backwards}.hero-words>:first-child{animation-delay:40ms}.hero-words>:nth-child(2){animation-delay:.11s}.hero-words>:nth-child(3){animation-delay:.18s}.hero-words>:nth-child(4){animation-delay:.25s}.hero-words>:nth-child(5){animation-delay:.32s}.hero-figure{animation:hero-rise .9s cubic-bezier(.22,1,.36,1) .14s backwards}@keyframes hero-rise{0%{opacity:0;transform:translate3d(0,14px,0)}to{opacity:1;transform:none}}.cat-index h1,.hub-cat-head h2,.hub-group h2,.page-content h1,.page-content h2,.tool-head h1{font-family:var(--font-display);font-weight:800;letter-spacing:-.035em;text-wrap:balance}.hub-cat-head h2,.hub-group h2,.page-content h2{font-weight:750;letter-spacing:-.025em}.cat-index h1,.page-content h1{font-size:clamp(30px,4vw,44px);line-height:1.05}.page-content h2{font-size:clamp(21px,2.2vw,26px);line-height:1.2}.hub-cat-head h2,.hub-group h2{font-size:24px;line-height:1.2}.page-content{max-width:72ch;font-size:16px;line-height:1.7}.page-content dd,.page-content li,.page-content p{text-wrap:pretty}.cat-head-words>.lede a,.cat-index>.lede a,.page-content dd a,.page-content li a,.page-content p a,.site-footer .fineprint a{color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:1px}.page-content .lede{font-size:18px;line-height:1.6;max-width:60ch}.page-content .steps li:before{width:26px;height:26px;line-height:24px;font-family:var(--font-display);font-size:14px;font-weight:750;background:transparent;color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 45%,transparent)}.page-content .faq dt{font-size:16px}.hub-cards a{position:relative;overflow:hidden}.hub-cards a:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .22s ease}.hub-cards a:focus-visible:before,.hub-cards a:hover:before{transform:scaleX(1)}.fam-card:hover,.hub-cards a:hover,.related-tools a:hover{border-color:var(--accent)}.site-footer .fineprint{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.foot-brand{display:grid;grid-template-columns:auto 1fr;grid-gap:2px 10px;gap:2px 10px;align-items:center;margin-bottom:var(--space-3)}.foot-whale{grid-row:span 2;width:34px;height:auto;color:var(--whale)}.foot-brand h3{margin:0;align-self:end}.foot-tag{align-self:start;font-size:var(--text-sm);color:var(--dim)}.privacy-promise{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;grid-gap:clamp(20px,4vw,56px);gap:clamp(20px,4vw,56px);margin:var(--space-6) 0;padding:clamp(28px,4vw,48px);background:var(--whale-soft);border-radius:var(--radius-4)}.privacy-promise h2{font-family:var(--font-display);font-size:clamp(26px,3.2vw,38px);font-weight:800;letter-spacing:-.04em;line-height:1.05;text-wrap:balance}.privacy-promise h2,.privacy-promise p{margin:0 0 var(--space-3);color:var(--text)}.privacy-promise p{max-width:56ch;font-size:16px;line-height:1.65;text-wrap:pretty}.privacy-promise .pp-proof{display:flex;align-items:baseline;gap:9px;font-size:var(--text-sm);color:var(--dim)}.pp-whale{width:clamp(120px,18vw,190px);height:auto;color:var(--whale);flex:none}.pp-link{display:inline-block;color:var(--text);font-weight:650;text-decoration:none;border-bottom:2px solid var(--whale);padding-bottom:1px;transition:border-color .2s}.pp-link:hover{border-bottom-color:var(--text)}@media (max-width:767.98px){.privacy-promise{grid-template-columns:minmax(0,1fr)}.pp-whale{order:-1;width:140px}}.nf-band{display:grid;align-items:center;min-height:min(620px,calc(100svh - 56px))}.nf-outs{margin:var(--space-5) 0 0}.nf-cats{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:var(--space-4) 0 0;padding:0;list-style:none}.nf-cats a{display:block;padding:7px 13px;border:1px solid var(--border);border-radius:999px;background:var(--panel);color:var(--dim);font-size:var(--text-md);font-weight:550;text-decoration:none;transition:color .2s,border-color .2s,background .2s}.nf-cats a:hover{color:var(--text);border-color:var(--border-strong);background:var(--panel-2)}.nf-kbd{padding:2px 6px;border:solid var(--border);border-width:1px 1px 2px;border-radius:var(--radius-1);background:var(--panel);font-family:inherit;font-size:11px;font-weight:600;line-height:1.5;color:var(--dim)}.nf-figure{position:relative}.nf-art{position:relative}.nf-art,.nf-whale{width:100%;max-width:440px}.nf-whale{height:auto;color:color-mix(in srgb,var(--whale) 68%,var(--dim));pointer-events:none;overflow:visible}.nf-whale .wm-body{transform-box:fill-box;transform-origin:50% 50%;transform:rotate(8deg)}@media (prefers-reduced-motion:no-preference){.nf-whale{animation:whale-sink 13s ease-in-out 1.4s infinite alternate}}@keyframes whale-sink{0%{transform:translateZ(0)}to{transform:translate3d(0,12px,0)}}.nf-strays{position:absolute;inset:0;pointer-events:none;color:var(--whale)}.nf-strays i{position:absolute;border-radius:50%;background:currentColor}.nf-strays i:first-child{left:45%;top:99%;width:11px;height:11px;opacity:.6}.nf-strays i:nth-child(2){left:38%;top:110%;width:8px;height:8px;opacity:.42}.nf-strays i:nth-child(3){left:32%;top:120%;width:5px;height:5px;opacity:.28}@media (prefers-reduced-motion:reduce){.hero-figure,.hero-whale,.hero-words>*,.nf-whale{animation:none!important}.hero-figure,.hero-words>*{opacity:1;transform:none}.hub-cards a:before{transition:none}}@media (max-width:1023.98px){.hero-inner{grid-template-columns:minmax(0,1fr);gap:var(--space-5)}.hero-figure{order:-1}.hero-whale,.nf-art,.nf-whale{max-width:300px}.hero-inner h1{font-size:clamp(36px,7vw,54px)}.nf-band{min-height:0}.nf-strays{display:none}}@media (max-width:767.98px){.hero-inner{padding:var(--space-5) var(--space-3) var(--space-5)}.hero-whale,.nf-art,.nf-whale{max-width:230px}.hero-meta{gap:var(--space-2) var(--space-4)}.cat-index h1,.page-content h1{font-size:30px}}.drop-plan[open]{display:flex;flex-direction:column}.drop-plan{width:min(880px,calc(100vw - 2 * var(--space-4)));max-height:85vh;padding:0;border:1px solid var(--border-strong);border-radius:var(--radius-4);background:var(--panel);color:var(--text);box-shadow:var(--shadow-lift);overscroll-behavior:contain}@supports (max-height:85dvh){.drop-plan{max-height:85dvh}}.drop-plan::-webkit-backdrop{background:color-mix(in srgb,#191817 55%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.drop-plan::backdrop{background:color-mix(in srgb,#191817 55%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.drop-plan[open]{animation:dp-rise .2s cubic-bezier(.2,.7,.3,1)}.drop-plan[open]::-webkit-backdrop{animation:dp-fade .2s ease-out}.drop-plan[open]::backdrop{animation:dp-fade .2s ease-out}@keyframes dp-rise{0%{opacity:0;transform:translateY(10px) scale(.985)}}@keyframes dp-fade{0%{opacity:0}}.dp-inner{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.dp-head{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-5) var(--space-5) var(--space-3)}.dp-head-text{min-width:0}.dp-head h2{margin:0;font-family:var(--font-display);font-size:22px;line-height:1.2;letter-spacing:-.01em}.dp-sub{display:flex;align-items:center;gap:10px;margin:6px 0 0;font-size:var(--text-sm);color:var(--dim)}.dp-sub .sep{width:3px;height:3px;flex:none;border-radius:50%;background:var(--border-strong)}.dp-close{flex:none;margin-left:auto;display:grid;place-items:center;width:32px;height:32px;border:1px solid transparent;border-radius:50%;background:none;color:var(--dim);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.dp-close:hover{background:var(--panel-2);border-color:var(--border);color:var(--text)}.dp-chips{flex-wrap:wrap;margin:0;padding:0 var(--space-5) var(--space-4);list-style:none}.dp-chip,.dp-chips{display:flex;align-items:center;gap:var(--space-2)}.dp-chip{max-width:240px;padding:4px 8px 4px 4px;border:1px solid var(--border);border-radius:999px;background:var(--panel-2);font-size:var(--text-sm)}.dp-thumb{width:26px;height:26px;flex:none;border-radius:50%;object-fit:cover;background:var(--stage-bg);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--text) 12%,transparent)}.dp-thumb-blank{display:grid;place-items:center;font-size:8px;font-weight:700;letter-spacing:.04em;color:var(--dim)}.dp-chip-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dp-chip-x{flex:none;display:grid;place-items:center;width:16px;height:16px;padding:0;border:0;border-radius:50%;background:none;color:var(--dim);cursor:pointer}.dp-chip-x:hover{background:var(--border);color:var(--text)}.dp-chip-more{padding:5px 10px;color:var(--dim)}.dp-add{padding:5px 12px;border:1px dashed var(--border-strong);border-radius:999px;background:none;color:var(--dim);font:inherit;font-size:var(--text-sm);cursor:pointer;transition:border-color .15s,color .15s}.dp-add:hover{border-color:var(--accent);color:var(--text)}.dp-note{margin:0 var(--space-5) var(--space-4);padding:var(--space-2) var(--space-3);border-left:2px solid var(--accent);border-radius:0 var(--radius-1) var(--radius-1) 0;background:color-mix(in srgb,var(--accent) 7%,transparent);font-size:var(--text-sm);color:var(--text)}.dp-chips,.dp-foot,.dp-head,.dp-note{flex:none}.dp-body{flex:1 1 auto;min-height:0;overflow-y:auto;border-top:1px solid var(--border);padding:var(--space-4) var(--space-5) var(--space-5)}.dp-group+.dp-group{margin-top:var(--space-4)}.dp-group-label{margin:0 0 var(--space-2);font-size:var(--text-xs);font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}.dp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:var(--space-2);gap:var(--space-2)}.dp-action{display:flex;align-items:flex-start;gap:10px;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-2);background:var(--panel);color:var(--text);text-decoration:none;transition:border-color .15s,background .15s,transform .15s}.dp-action:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 5%,var(--panel))}.dp-action:active{transform:translateY(1px)}.dp-action .grp-icon{flex:none;margin-top:2px;color:var(--dim)}.dp-action:hover .grp-icon{color:var(--accent)}.dp-a-text{display:flex;flex-direction:column;gap:2px;min-width:0}.dp-a-label{font-weight:650;line-height:1.3}.dp-a-hint{font-size:var(--text-sm);line-height:1.4;color:var(--dim)}.dp-action.is-primary{grid-column:1/-1;border-color:var(--text);box-shadow:inset 0 0 0 1px var(--text)}.dp-action.is-primary:hover{background:var(--panel-2)}.dp-tag{flex:none;margin-left:auto;align-self:center;padding:3px 9px;border-radius:999px;background:var(--text);color:var(--bg);font-size:var(--text-xs);font-weight:650;letter-spacing:.04em}.dp-foot{flex-wrap:wrap;justify-content:space-between;gap:var(--space-2) var(--space-4);padding:var(--space-3) var(--space-5);border-top:1px solid var(--border);background:var(--panel-2);border-radius:0 0 var(--radius-4) var(--radius-4);font-size:var(--text-sm)}.dp-foot,.dp-privacy{display:flex;align-items:center}.dp-privacy{gap:var(--space-2);color:var(--dim)}.dp-browse{color:var(--text);font-weight:650;text-decoration:none;border-bottom:2px solid var(--clay)}.dp-browse:hover{border-bottom-color:var(--text)}@media (max-width:640px){.drop-plan{position:fixed;inset:auto 0 0 0;width:100%;max-width:100%;max-height:88vh;margin:0;padding-bottom:env(safe-area-inset-bottom);border-radius:var(--radius-4) var(--radius-4) 0 0;border-bottom:0}.drop-plan[open]{animation:dp-sheet .22s cubic-bezier(.2,.7,.3,1)}@keyframes dp-sheet{0%{transform:translateY(14px);opacity:0}}.dp-head{padding:var(--space-4) var(--space-4) var(--space-3)}.dp-head h2{font-size:var(--text-lg)}.dp-chips{padding:0 var(--space-4) var(--space-3)}.dp-note{margin:0 var(--space-4) var(--space-3)}.dp-body{padding:var(--space-4)}.dp-foot{padding:var(--space-3) var(--space-4);border-radius:0}.dp-grid{grid-template-columns:1fr}}@supports (max-height:88dvh){@media (max-width:640px){.drop-plan{max-height:88dvh}}}@media (prefers-reduced-motion:reduce){.drop-plan[open]::-webkit-backdrop{animation:none}.drop-plan[open],.drop-plan[open]::backdrop{animation:none}.dp-action{transition:none}.dp-action:active{transform:none}}.hero-veil{position:absolute;inset:0;z-index:2;display:grid;place-items:center;padding:var(--space-3);background:color-mix(in srgb,var(--bg) 80%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:none;--veil-x:50%;--veil-y:50%;transform-origin:var(--veil-x) var(--veil-y);animation:hv-grow .22s cubic-bezier(.2,.7,.3,1)}@keyframes hv-grow{0%{opacity:0;transform:scale(.9)}}.hv-frame{display:grid;justify-items:center;align-content:center;grid-gap:var(--space-1);gap:var(--space-1);width:100%;height:100%;border:2px dashed var(--accent);border-radius:var(--radius-4);background:color-mix(in srgb,var(--accent) 6%,transparent);color:var(--text);text-align:center;padding:var(--space-4)}.hv-arrow{color:var(--accent);margin-bottom:var(--space-1);animation:hv-nudge 1.4s ease-in-out infinite}@keyframes hv-nudge{0%,to{transform:translateY(-2px)}50%{transform:translateY(2px)}}.hv-main{font-family:var(--font-display);font-size:clamp(22px,3.2vw,32px);font-weight:800;letter-spacing:-.02em;line-height:1.1}.hv-sub{font-size:var(--text-md);color:var(--dim)}.hero-band .hub-drop.over{border-style:solid;border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}@media (prefers-reduced-motion:reduce){.hero-veil,.hv-arrow{animation:none}}