/* Hallmark · shape: app screen · genre: modern-minimal · theme: custom · idea: a visual toolbox with distinct task glyphs · vibe: dense electric blue practical visual toolkit · axes: dark/system-sans/chromatic-blue · posture: saturated · scope: app · v2.0.0 */
/* Hallmark · pre-emit critique: P4 H4 E4 S4 R4 V4 · weakest: R, balance a dense gallery with a calm numerical workspace. */
/* Hallmark · waive 3 · app directory with distinct task-specific Lucide glyphs · equal entries keep task labels comparable; the user explicitly requested icon-led tool entrances. */
/* Hallmark · answered F7 · shared control geometry is deliberate application consistency; primary blue actions, quiet navigation, photographic features and neutral numerical workspaces have distinct roles. */
/* Hallmark · finish-review: fresh-context V2 ship; five earlier material findings resolved; latest icon direction explicitly confirmed. */
:root{--bg:#080d18;--surface:#101b2f;--raised:#16243c;--hover:#1b304e;--ink:#f3f7ff;--muted:#adbad0;--rule:#2d4262;--input-rule:#637b9d;--blue:#2f8cff;--blue-text:#8ac5ff;--blue-deep:#1768d4;--danger:#ffb2ba;--success:#90dbbf;--shade:rgba(8,13,24,.92);--shade-clear:rgba(8,13,24,0);--photo-tint:rgba(16,27,47,.15);--font-body:"Instrument Sans","IBM Plex Sans","Microsoft JhengHei","Microsoft YaHei",system-ui,sans-serif;--font-code:ui-monospace,Consolas,monospace;--font-display:var(--font-body);--container:1400px;--gutter:28px;--gap:20px;--radius:12px;--radius-input:7px;--ease-out:cubic-bezier(.23,1,.32,1);--dur-micro:160ms;--p-bg:var(--bg);--p-surface:var(--surface);--p-ink:var(--ink);--p-muted:var(--muted);--p-accent:var(--blue-text);--p-accent-ink:var(--bg);--p-action:var(--blue);--p-action-ink:var(--bg);--p-inv-bg:var(--surface);--p-inv-surface:var(--raised);--p-inv-ink:var(--ink);--p-inv-muted:var(--muted);--p-inv-accent:var(--blue-text);--p-inv-accent-ink:var(--bg);--p-inv-action:var(--blue);--p-inv-action-ink:var(--bg);--color-paper:var(--bg);--color-paper-2:var(--surface);--color-paper-3:var(--raised);--color-ink:var(--ink);--color-ink-2:var(--muted);--color-accent:var(--blue);--color-focus:var(--blue-text);--color-rule:var(--rule);color-scheme:dark}
*,*::before,*::after{box-sizing:border-box}html,body{overflow-x:clip}html{scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 var(--font-body);accent-color:var(--blue);scrollbar-color:var(--rule) var(--bg)}
::selection{background:var(--blue-deep);color:var(--ink)}[hidden]{display:none!important}img,video,svg{max-width:100%}img{display:block}a{color:var(--blue-text);text-underline-offset:4px}a:hover{color:var(--ink)}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3,h4{color:var(--ink);font-family:var(--font-display);font-weight:650;line-height:1.25;overflow-wrap:break-word;min-width:0;letter-spacing:-.025em;text-wrap:balance}h1{font-size:32px;margin:0 0 12px}h2{font-size:24px;margin:0 0 16px}h3{font-size:19px;margin:0 0 8px}p{margin:0 0 16px;max-width:72ch}small,.meta,.help,.hint,.report-limit,.estimate-note{color:var(--muted);font-size:14px;line-height:1.6}ul,ol{padding-left:24px}li{margin-bottom:8px}b,strong{font-weight:650}.icon{display:inline-block;flex:0 0 auto;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
:where(a,button,input,select,textarea,summary):focus-visible{outline:2px solid var(--blue-text);outline-offset:4px;transition:none}
:where(button,.button,.btn,.nav-button,.language-switch a,.blue-brand,.entry-action){display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:8px 16px;border:1px solid var(--rule);border-radius:var(--radius-input);background:var(--raised);color:var(--ink);font-size:14px;font-weight:550;line-height:1.35;text-decoration:none;cursor:pointer;white-space:nowrap;transition:transform var(--dur-micro) var(--ease-out),opacity var(--dur-micro) ease,background-color var(--dur-micro) ease,border-color var(--dur-micro) ease}
:where(button,.button,.btn,.nav-button,.language-switch a,.blue-brand,.tool-entry,.feature):active{transform:scale(.98)}
:where(button,input,select,textarea):disabled,[aria-disabled=true]{opacity:.48;cursor:not-allowed;transform:none}button[aria-busy=true]{cursor:progress;opacity:.65}
.primary,.btn--primary,.button:not(.quiet){background:var(--blue);border-color:var(--blue);color:var(--bg);font-weight:700}.quiet,.btn--secondary{background:var(--surface);color:var(--ink)}
@media (hover: hover) and (pointer: fine){:where(button,.button,.btn,.nav-button,.language-switch a):hover{background:var(--hover);border-color:var(--blue);transform:translateY(-1px)}:where(.primary,.btn--primary,.button:not(.quiet)):hover{background:var(--blue-text);color:var(--bg)}.tool-entry:hover,.feature:hover{border-color:var(--blue);transform:translateY(-2px)}.tool-entry:hover .art-preview{opacity:1;transform:translateY(0)}.tool-entry:hover .art-primary{opacity:0}.tool-entry:hover .preview-caption{opacity:1}.feature:hover img{opacity:.8}}
.skip,.skip-link{position:fixed;top:-100px;left:12px;z-index:100;background:var(--blue);color:var(--bg);padding:12px}.skip:focus,.skip-link:focus{top:12px}
.blue-header{position:relative;z-index:20;width:100%;border-bottom:1px solid var(--rule);background:var(--surface)}.blue-topbar{max-width:var(--container);margin:auto;padding:8px var(--gutter);display:flex;gap:24px;align-items:center;flex-wrap:wrap;min-height:76px}.blue-brand{padding:0;border:0;background:transparent;font-size:20px;letter-spacing:-.04em;min-height:44px}.blue-brand>.icon{color:var(--blue);width:25px;height:25px}.blue-topbar nav{display:flex;gap:4px;flex:1}.nav-button{background:transparent;border-color:transparent;min-height:40px;padding:8px 12px;color:var(--muted)}.nav-button[aria-current]{background:var(--raised);color:var(--blue-text);border-color:var(--rule)}.nav-button .icon{width:18px;height:18px}.language-switch{display:flex;align-items:center;gap:4px}.language-switch a{padding:8px 8px;min-height:38px;font-size:12px;background:transparent;border-color:transparent}.language-switch a[aria-current]{background:var(--blue-deep);color:var(--ink)}
main{max-width:var(--container);margin:0 auto;padding:32px var(--gutter) 56px}.container,.wrap{width:100%;max-width:var(--container);margin-inline:auto}.wrap{padding:0}.directory-intro{display:flex;gap:24px;justify-content:space-between;align-items:center;margin-bottom:24px}.directory-intro h1{font-size:30px;margin-bottom:4px}.directory-intro p{font-size:15px;color:var(--muted);margin:0}.search-row{display:flex;gap:8px;align-items:end;flex:0 1 430px}.search-row>div{flex:1;min-width:0}.search-row label{font-size:12px;margin-bottom:4px}.search-row button{font-size:13px;min-height:46px}.search-row input{height:46px}.directory-controls{padding:8px 0 24px}.category-filters{display:flex;gap:8px;flex-wrap:wrap}.category-filters button{background:var(--surface);font-size:14px;min-height:42px}.category-filters button[aria-pressed=true]{background:var(--blue);color:var(--bg);border-color:var(--blue)}.category-filters .preview-toggle{margin-left:auto;font-size:12px;background:transparent;color:var(--muted)}.category-filters .preview-toggle[aria-pressed=true]{background:var(--raised);color:var(--blue-text);border-color:var(--blue)}.search-status{font-size:13px;color:var(--muted);margin:16px 0 0}.empty{border:1px dashed var(--rule);padding:24px;border-radius:var(--radius)}
.featured-tools{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr) minmax(0,1fr);gap:var(--gap);margin-bottom:12px}.feature{position:relative;display:block;min-height:245px;border:1px solid var(--rule);border-radius:var(--radius);overflow:clip;text-decoration:none;background:var(--surface);transition:transform var(--dur-micro) var(--ease-out),border-color var(--dur-micro) ease}.feature img{width:100%;height:100%;position:absolute;object-fit:cover;transition:opacity var(--dur-micro) ease}.feature::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--shade),var(--shade-clear)),linear-gradient(0deg,var(--shade),var(--shade-clear) 80%);pointer-events:none}.feature-copy{position:relative;z-index:1;padding:24px;min-height:245px;display:flex;align-items:flex-start;flex-direction:column;justify-content:flex-end}.feature-copy>.icon{width:28px;height:28px;margin-bottom:auto;color:var(--blue-text)}.feature h2{font-size:25px;margin:32px 0 16px}.feature .button{font-size:13px;min-height:38px;padding:8px 12px}.feature-media img{object-position:65% 50%}.feature-airport img{object-position:62% 50%}.feature-labels img{object-position:58% 50%}.feature-media::after{background:linear-gradient(90deg,var(--shade) 2%,var(--shade-clear) 90%),linear-gradient(0deg,var(--shade),var(--shade-clear) 90%)}
.tool-group{margin:0 0 32px}.tool-group>h2{font-size:22px;margin-bottom:4px}.group-description{font-size:14px;color:var(--muted);margin-bottom:16px}.directory-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}.directory-list li{margin:0;min-width:0}.tool-entry{display:flex;flex-direction:column;height:100%;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);overflow:clip;text-decoration:none;color:var(--ink);transition:transform var(--dur-micro) var(--ease-out),border-color var(--dur-micro) ease}.tool-art{position:relative;aspect-ratio:16/8;overflow:clip;background:var(--raised);width:100%}.tool-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity var(--dur-micro) ease,transform var(--dur-micro) var(--ease-out)}.tool-art .art-preview{opacity:1;object-fit:contain;background:var(--surface);transform:none}.js .tool-art .art-preview{opacity:0;transform:translateY(2px)}.art-primary{filter:saturate(.7)}.art-images .art-primary{object-position:80% 65%}.art-subtitles .art-primary{object-position:5% 75%;filter:saturate(.2)}.art-label-zpl .art-primary{object-position:15% 35%}.art-label-ribbon .art-primary{object-position:65% 70%}.art-label-fit .art-primary{object-position:82% 40%}.art-label-wind .art-primary{object-position:45% 65%}.art-mark{position:absolute;bottom:12px;left:14px;display:flex;padding:8px;background:var(--shade);border:1px solid var(--rule);border-radius:7px;color:var(--blue-text)}.art-mark .icon{width:23px;height:23px}.preview-caption{position:absolute;bottom:0;right:0;padding:4px 8px;font-size:11px;background:var(--shade);color:var(--muted);opacity:1}.js .preview-caption{opacity:0}.entry-copy{padding:16px;flex:1;display:flex;flex-direction:column;align-items:flex-start;min-width:0}.entry-copy h3{display:flex;align-items:center;gap:8px;font-size:19px;margin-bottom:8px}.entry-copy h3 .icon{width:18px;height:18px}.entry-copy p{font-size:14px;line-height:1.55;color:var(--muted);margin-bottom:12px}.interface-language{font-size:11px;color:var(--muted);margin-top:auto}.entry-action{margin-top:16px;padding:8px 12px;min-height:36px;font-size:12px;color:var(--blue-text);background:var(--raised)}.show-previews .art-preview{opacity:1;transform:none}.show-previews .art-primary{opacity:0}.show-previews .preview-caption{opacity:1}.guides{border-top:1px solid var(--rule);padding-top:24px}.guide-list{display:flex;flex-wrap:wrap;gap:12px}.guide{padding:12px 16px;border:1px solid var(--rule);border-radius:var(--radius-input);background:var(--surface);text-decoration:none;font-size:14px}.guide strong{font-size:14px}.guide small{display:none}
.module-main{padding-top:24px}.tool-heading{position:relative;isolation:isolate;min-height:134px;padding:20px 200px 20px 0;margin:0 0 20px;border-bottom:1px solid var(--rule);overflow:clip}.tool-heading h1{font-size:30px;max-width:37ch}.tool-heading p{font-size:15px;color:var(--muted);max-width:75ch;margin-bottom:0}.tool-heading>img{position:absolute;z-index:-2;right:0;top:0;height:100%;width:300px;object-fit:cover;opacity:.6;mask-image:linear-gradient(90deg,var(--shade-clear),var(--bg) 80%)}.heading-airport>img{width:350px;object-position:right}.heading-labels>img{object-position:60% 60%}.checked{font-size:12px;color:var(--muted);margin-bottom:16px}.preview-note{font-size:13px;padding:8px var(--gutter);border-bottom:1px solid var(--rule);color:var(--blue-text);background:var(--surface)}.intro:has(.tool-heading){margin:0}.tool-list,.tool-index{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap);list-style:none;padding:0;margin:0 0 32px}.tool-list>li,.tool-index>li{display:flex;flex-direction:column;min-width:0;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);overflow:clip;margin:0}.tool-list h2,.tool-index h2{font-size:21px;margin:0}.tool-list h2>a,.tool-index h2>a{display:flex;flex-direction:column;text-decoration:none;color:var(--ink);gap:16px;padding-bottom:16px}.tool-list h2>a .icon,.tool-index h2>a .icon{margin-left:16px}.tool-list li>div,.tool-index li>p{padding:0 16px 8px;font-size:14px;color:var(--muted)}.tool-list li>div p+p{font-size:12px}.tool-index>li>a{margin:8px 16px 16px;align-self:flex-start}.tool-index>li>h2>a{margin:0}.tool-list a .tool-art,.tool-index a .tool-art{margin:0;aspect-ratio:16/9}.tool-list h2>a,.tool-index h2>a{display:block}.tool-list h2>a>.icon,.tool-index h2>a>.icon{margin:16px 8px 0 16px}.tool-list h2>a .tool-art,.tool-index h2>a .tool-art{margin-bottom:16px}
.workspace,.workbench{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:var(--gap);align-items:start;margin-bottom:28px}.workspace>*,.workbench>*{min-width:0}.controls,.results,.output,.input-panel,.result-panel,.report,.studio{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);padding:24px;min-width:0}.workspace h2,.workbench h2{font-size:21px}.output,.results,.result-panel{min-height:360px}.output>p,#status,.status{font-size:14px;color:var(--muted);max-width:72ch}.output video,.output img,.output audio,#output video,#output img,#output audio{display:block;width:100%;max-height:380px;margin:16px 0 0;object-fit:contain}.download{display:inline-flex;padding:12px 16px;background:var(--blue);color:var(--bg);font-weight:650;border-radius:var(--radius-input);text-decoration:none;margin-top:12px}.download:hover{background:var(--blue-text);color:var(--bg)}.samples,.actions,.preset-row,.form-actions,.result-actions{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.samples button{font-size:12px;min-height:38px;padding:8px 12px}.actions button{font-size:14px}.field{margin:0 0 16px;min-width:0}.field>label,label{display:block;font-size:14px;font-weight:550;margin-bottom:8px}.field-grid,.fields-grid,.row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.row>.field:only-child{grid-column:1/-1}input:not([type=checkbox]):not([type=radio]),select,textarea{display:block;width:100%;min-width:0;min-height:46px;background:var(--bg);color:var(--ink);border:1px solid var(--rule);border-radius:var(--radius-input);padding:8px 12px;font-size:16px;line-height:1.4}input[type=file]{font-size:13px!important;padding:8px!important}input::file-selector-button{background:var(--raised);border:1px solid var(--rule);color:var(--blue-text);border-radius:4px;padding:8px 8px;margin-right:8px;font:inherit;cursor:pointer}input[aria-invalid=true]{border-color:var(--danger)}input:hover,select:hover,textarea:hover{border-color:var(--blue-text)}textarea{min-height:140px;resize:vertical}.help,.hint{margin:8px 0 12px;font-size:12px}progress{display:block;width:100%;height:7px;accent-color:var(--blue);margin:20px 0}.error,.field-error,[role=alert]{color:var(--danger);font-size:13px}.error:empty,.field-error:empty{display:none}.plan-summary{color:var(--blue-text);font-weight:600;font-size:15px}.cost{font-size:20px;display:block;color:var(--blue-text)}
table{width:100%;border-collapse:collapse;margin:16px 0 24px;font-size:14px;line-height:1.5;table-layout:fixed}caption{text-align:left;font-size:14px;color:var(--muted);margin-bottom:12px}th,td{text-align:left;vertical-align:top;padding:12px 8px;border-bottom:1px solid var(--rule);overflow-wrap:anywhere}th{font-weight:600}thead{background:var(--raised);color:var(--ink)}td p{margin-bottom:8px;font-size:12px}table a{display:inline-block;font-size:12px;padding:8px 8px;border:1px solid var(--rule);border-radius:5px;background:var(--raised);margin:4px 0;text-decoration:none}table a:hover{border-color:var(--blue)}.results table th:first-child{width:25%}.results table th:nth-child(2){width:24%}.results table td .cost{font-size:19px}pre,code{font-family:var(--font-code);font-size:13px}pre{overflow:auto;max-width:100%;padding:16px;background:var(--bg);border:1px solid var(--rule);border-radius:var(--radius-input);white-space:pre-wrap;overflow-wrap:anywhere}dl{margin:16px 0}.result-row,#detail>div{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px solid var(--rule);font-size:14px}dt{color:var(--muted)}dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}.main-result{margin:20px 0;display:flex;gap:8px;flex-wrap:wrap;align-items:baseline}.main-result>strong,.big{font-size:42px;font-weight:650;line-height:1.1;letter-spacing:-.04em;color:var(--blue-text)}.main-result>span,.result-unit{font-size:15px;color:var(--muted)}.main-result>.big{display:block;width:100%}.specification{font-size:21px;color:var(--blue-text)}.diagram,.dimension-diagram,.sheet-preview{padding:16px;background:var(--raised);border-radius:var(--radius-input);margin:20px 0}.diagram svg,.dimension-diagram svg{display:block;max-height:400px;margin:auto}.sheet-preview svg{max-height:360px;display:block;margin:auto}.winding-mobile{display:none}.winding-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.winding-thumb{height:60px;max-width:100%}.winding-grid button{white-space:normal;font-size:12px}.winding-grid button[aria-pressed=true]{border-color:var(--blue);background:var(--blue-deep)}
.content,.section,.guide-index,.prose,.guides,.field-notes{margin-block:32px}.content>h2,.section-head h2{font-size:23px}.content-grid,.case-layout,.guide-index{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.content-grid p{font-size:14px;color:var(--muted)}.content-grid a,.footer-links a,.blue-footer nav a,.blue-footer>span a{display:inline-flex;padding:8px 12px;background:var(--raised);border:1px solid var(--rule);border-radius:var(--radius-input);font-size:13px;text-decoration:none;min-height:40px;align-items:center}.content-grid a:hover,.blue-footer a:hover{border-color:var(--blue)}.content-grid h3{font-size:19px}.prose{max-width:72ch}.prose p,.prose li{color:var(--muted)}.prose section{margin-top:28px}.prose h1{font-size:34px}.prose h2{margin-top:28px}.prose h3{margin-top:20px}.prose a{overflow-wrap:anywhere}.prose table{font-size:13px}.license-list{list-style:none;padding:0}.license-list li{padding:16px 0;border-bottom:1px solid var(--rule)}.license-list a{margin-right:12px}.language-transfer-note{font-size:12px;line-height:1.6;color:var(--muted);border-top:1px solid var(--rule);padding-top:16px;margin-top:36px;max-width:90ch}.breadcrumbs{margin-bottom:16px;font-size:14px}.content details,.cost-options{padding:16px 0;border-top:1px solid var(--rule)}details>summary{cursor:pointer;color:var(--blue-text);font-size:15px;min-height:30px}details[open]>summary{margin-bottom:16px}details p{font-size:14px;color:var(--muted)}.blue-footer{max-width:var(--container);margin:auto;padding:24px var(--gutter) 36px;border-top:1px solid var(--rule);font-size:12px;color:var(--muted);display:flex;gap:20px;flex-wrap:wrap;justify-content:space-between}.blue-footer>.container{display:flex;gap:20px;flex-wrap:wrap;justify-content:space-between}.blue-footer p{font-size:12px;flex-basis:100%;margin:0}.blue-footer nav,.footer-links,.blue-footer>span:last-of-type{display:flex;flex-wrap:wrap;gap:8px}.analytics-settings{font-size:12px!important;min-height:38px!important}.blue-footer>.button{min-height:38px;font-size:12px}.analytics-dialog,.analytics-banner{background:var(--surface);color:var(--ink);border-color:var(--rule)}
/* Core calculators: the original inputs, live diagrams and downloadable reports share this shell. */
.hero{padding:0;margin:0 0 28px}.hero .intro{margin-bottom:20px}.hero h1{font-size:30px}.intro>div>p{color:var(--muted);font-size:15px}.app-frame{border:1px solid var(--rule);border-radius:var(--radius);overflow:clip;background:var(--surface)}.app-toolbar,.studio-head,.studio-foot{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:16px 20px;border-bottom:1px solid var(--rule);font-size:13px;color:var(--muted)}.toolbar-title,.ui-title{font-size:15px;font-weight:650;color:var(--ink)}.app-frame>.workspace{grid-template-columns:minmax(0,.95fr) minmax(0,1fr) minmax(0,.8fr);gap:0;margin:0;align-items:stretch}.app-frame .controls,.app-frame .studio,.app-frame .report{border:0;border-radius:0;background:transparent;padding:24px}.app-frame .controls,.app-frame .studio{border-right:1px solid var(--rule)}.app-frame .report{background:var(--raised)}.app-frame .report .big{font-size:46px}.studio-head,.studio-foot{padding:0 0 16px}.studio-foot{padding:16px 0 0;border-top:1px solid var(--rule);border-bottom:0;font-size:12px}.view-label{font-size:12px}.canvas{min-height:250px;display:flex;align-items:center;justify-content:center;padding-block:24px}.canvas>svg{width:100%;max-height:280px;color:var(--blue-text)}.summary-strip{display:flex;gap:24px;justify-content:space-around;padding:16px 24px;border-top:1px solid var(--rule)}.summary-strip>div{display:flex;flex-direction:column;font-size:12px}.summary-strip span{color:var(--muted)}.summary-strip b{font-size:13px}.report-note{font-size:12px;color:var(--muted);margin-top:8px}.report-limit{font-size:12px;margin-top:16px}.room{margin:12px 0;padding:12px;background:var(--bg);border:1px solid var(--rule);border-radius:var(--radius-input)}.room-head{display:flex;gap:8px;align-items:center;margin-bottom:8px}.room-name{flex:1;min-width:0}.remove-room{padding:4px 8px;min-height:38px}.preset-row button{font-size:12px;padding:8px 8px;min-height:38px}.preset-row button[aria-pressed=true]{border-color:var(--blue);background:var(--blue-deep)}.add-room{width:100%;font-size:13px}.upload-zone{border:1px dashed var(--blue-text);padding:16px;border-radius:var(--radius-input);background:var(--raised);cursor:pointer;display:flex;flex-direction:column;align-items:center;margin-block:16px}.upload-zone>input{margin-top:8px}.upload-sub{font-size:12px;color:var(--muted)}.upload-glyph{font-size:24px;color:var(--blue-text)}.paper-frame{width:85%;min-height:220px;display:flex;align-items:center;justify-content:center}.paper{position:relative;border:1px solid var(--blue-text);background:var(--raised);min-width:100px;min-height:80px;display:flex;align-items:center;justify-content:center}.paper-center{display:flex;flex-direction:column;text-align:center;font-size:14px}.paper-center span{color:var(--muted)}#local-preview{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.ruler-top{position:absolute;top:-28px;left:0;right:0;text-align:center;font-size:12px}.ruler-side{position:absolute;right:-35px;top:45%;font-size:12px}.weight-bars{display:flex;gap:16px;flex-direction:column}.weight-bar-label{display:flex;justify-content:space-between;font-size:12px}.bar-track{height:7px;margin-top:8px;background:var(--bg);border-radius:4px}.bar-track i{display:block;height:100%;background:var(--blue);border-radius:4px}.case-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}.editorial-photo{border-radius:var(--radius);overflow:clip}.editorial-photo img{width:100%;aspect-ratio:16/8;object-fit:cover;filter:saturate(.6)}.steps,.cards,.method-grid,.checks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.mobile-estimate{display:none}.section-head{margin-bottom:20px}.section-head p{font-size:15px;color:var(--muted)}.step{border-top:1px solid var(--rule);padding-top:16px}.step p,.step li{font-size:14px;color:var(--muted)}.image-credit{display:none}
@media(min-width:1600px){.blue-topbar{gap:32px}.directory-list{grid-template-columns:repeat(4,minmax(0,1fr))}.featured-tools{grid-template-columns:minmax(0,1.8fr) minmax(0,1fr) minmax(0,1fr)}}
@media(max-width:1180px){.blue-topbar{gap:8px 20px}.blue-topbar nav{order:3;flex-basis:100%;overflow:auto}.blue-topbar>.language-switch{margin-left:auto}.app-frame>.workspace{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.app-frame .report{grid-column:2;grid-row:1}.app-frame .studio{grid-column:1/-1;border-right:0;border-top:1px solid var(--rule);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);column-gap:24px}.app-frame .studio .canvas{grid-column:2;grid-row:1/4;padding:0;min-height:220px}.app-frame .studio .studio-head,.app-frame .studio .studio-foot{grid-column:1;display:flex;flex-wrap:wrap;align-content:center}.featured-tools{gap:16px}.feature h2{font-size:23px}.feature-copy{padding:20px}.category-filters .preview-toggle{margin-left:0}}
@media(max-width:850px){:root{--gutter:20px;--gap:16px}.directory-list,.tool-list,.tool-index{grid-template-columns:repeat(2,minmax(0,1fr))}.featured-tools{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.feature-media{grid-column:1/-1;min-height:230px}.feature-media .feature-copy{min-height:230px;width:65%}.feature-airport,.feature-labels,.feature-airport .feature-copy,.feature-labels .feature-copy{min-height:200px}.directory-intro{align-items:stretch;flex-direction:column;gap:16px}.search-row{flex-basis:auto;max-width:none}.workspace,.workbench{grid-template-columns:minmax(0,1fr);gap:16px}.results,.output{min-height:240px}.controls,.results,.output,.input-panel,.result-panel{padding:24px}.content-grid,.steps,.method-grid,.checks{grid-template-columns:minmax(0,1fr)}.tool-heading{padding-right:100px}.tool-heading>img{width:200px;opacity:.4}.tool-heading h1{font-size:28px}.tool-heading p{font-size:14px}.content-grid section{border-bottom:1px solid var(--rule);padding-bottom:20px}.content-grid p{max-width:70ch}.guide-index{grid-template-columns:minmax(0,1fr)}.case-layout{gap:20px}.blue-topbar nav{scrollbar-width:none}.nav-button{flex:0 0 auto}.tool-entry .entry-copy h3{font-size:18px}.winding-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:600px){:root{--gutter:16px;--gap:16px}main{padding-top:24px}.blue-topbar{padding-block:8px;gap:8px}.blue-brand{font-size:17px;gap:8px}.blue-brand>.icon{width:20px;height:20px}.language-switch a{font-size:11px;padding:8px 8px;min-height:36px}.blue-topbar nav{gap:0px;margin-top:4px}.nav-button{padding:8px 8px;font-size:12px;min-height:38px;gap:8px}.nav-button .icon{width:16px;height:16px}.directory-intro h1{font-size:27px}.featured-tools{gap:12px}.feature-media,.feature-media .feature-copy{min-height:205px}.feature-airport,.feature-labels,.feature-airport .feature-copy,.feature-labels .feature-copy{min-height:180px}.feature-copy{padding:16px}.feature h2{font-size:21px;margin:24px 0 12px}.feature .button{padding:8px 8px;min-height:36px;font-size:12px}.feature-copy>.icon{width:23px;height:23px}.category-filters{gap:8px}.category-filters button{padding:8px 8px;min-height:40px;font-size:12px;gap:8px}.category-filters button .icon{width:17px;height:17px}.category-filters .preview-toggle{flex-basis:100%;justify-content:flex-start;width:auto;min-height:32px;padding-left:0}.directory-list{gap:12px}.tool-art{aspect-ratio:16/10}.entry-copy{padding:12px}.entry-copy h3{font-size:16px!important;align-items:flex-start;gap:8px}.entry-copy h3 .icon{display:none}.entry-copy p{font-size:12px;margin-bottom:8px;line-height:1.5}.interface-language{font-size:10px}.entry-action{font-size:11px;padding:8px 8px;min-height:32px;margin-top:8px}.art-mark{padding:8px;left:10px;bottom:9px}.art-mark .icon{width:19px;height:19px}.group-description{font-size:13px}.tool-group>h2{font-size:21px}.search-row input{font-size:14px}.search-row button{padding:8px;font-size:12px}.tool-heading{padding:12px 48px 16px 0;min-height:120px}.tool-heading h1{font-size:26px}.tool-heading>img{width:160px;opacity:.3}.tool-heading p{font-size:13px}.controls,.results,.output,.input-panel,.result-panel{padding:16px}.results table{font-size:13px}.results table thead{display:none}.results table tbody{display:grid;gap:12px}.results table tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:12px;border:1px solid var(--rule);border-radius:var(--radius-input);background:var(--raised)}.results table th,.results table td{border:0;padding:4px;width:auto!important}.results table th{grid-column:1}.results table td:nth-child(2){grid-column:2;text-align:right}.results table td:nth-child(3){grid-column:1/-1}.results table .cost{font-size:21px}.results table caption{font-size:12px}.app-frame>.workspace{grid-template-columns:minmax(0,1fr)}.app-frame .controls{border:0}.app-frame .report{grid-column:1;grid-row:auto;border-top:1px solid var(--rule)}.app-frame .studio{grid-column:1;display:block}.app-frame .studio .canvas{min-height:240px;padding-block:20px}.summary-strip{gap:12px;justify-content:space-between;font-size:11px;flex-wrap:wrap}.summary-strip b{font-size:12px}.case-layout{grid-template-columns:minmax(0,1fr)}.tool-list,.tool-index{grid-template-columns:minmax(0,1fr)}.tool-list h2>a .tool-art,.tool-index h2>a .tool-art{aspect-ratio:16/7}.winding-mobile{display:block}.winding-desktop{display:none}.winding-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.winding-mobile p{font-size:13px}.main-result>strong,.big{font-size:36px}.blue-footer,.blue-footer>.container{gap:16px}.blue-footer nav a,.footer-links a{font-size:12px}.guide-list{gap:8px}.guide{font-size:12px;padding:8px 12px}.guide strong{font-size:12px}.content{margin-block:28px}}
@media(max-width:380px){.blue-brand{font-size:16px}.language-switch a{padding:8px 4px;font-size:10px}.blue-topbar{gap:4px}.feature h2{font-size:20px}.feature-copy{padding:16px}.feature-copy>.icon{display:none}.feature-media .feature-copy{width:80%}.directory-intro h1{font-size:25px}}
@media(prefers-reduced-motion:reduce){:root{--dur-micro:0ms}html{scroll-behavior:auto}*,*::before,*::after{animation:none!important}.tool-entry:hover,.feature:hover,:where(button,.button,.btn,.nav-button,.language-switch a):hover,:where(button,.button,.btn,.nav-button,.language-switch a,.blue-brand,.tool-entry,.feature):active{transform:none}.art-preview{transform:none!important}}
@media print{.blue-header,.blue-footer,.actions,.samples,.language-switch,.mobile-estimate{display:none!important}main{padding:0}.workspace,.workbench,.app-frame>.workspace{display:block}.controls,.report,.results{break-inside:avoid}.tool-heading>img{display:none}}

input:not([type=checkbox]):not([type=radio]),select,textarea{border-color:var(--input-rule)}
.controls,.results,.output,.input-panel,.result-panel,.report,.studio{color:var(--ink)}
.content-grid a,.footer-links a,.blue-footer nav a,.blue-footer>span a{color:var(--blue-text)}
.feature .feature-preview{opacity:1;object-fit:contain;background:var(--surface)}.js .feature .feature-preview{opacity:0}.js .feature .feature-photo{opacity:1}
.js body.show-previews .tool-art .art-preview,.js body.show-previews .feature .feature-preview{opacity:1;transform:none}.js body.show-previews .art-primary,.js body.show-previews .feature-photo{opacity:0}.js body.show-previews .preview-caption{opacity:1}
@media (hover: hover) and (pointer: fine){.js .tool-entry:hover .art-preview{opacity:1;transform:none}.js .feature:hover .feature-preview{opacity:1}.js .feature:hover .feature-photo{opacity:0}.js .tool-entry:hover .preview-caption{opacity:1}}
@media(max-width:600px){.featured-tools{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);grid-template-rows:repeat(2,minmax(0,1fr));height:264px}.feature-media{grid-column:auto;grid-row:1/3}.feature-media .feature-copy{min-height:100%;width:100%}.feature-airport,.feature-labels,.feature-airport .feature-copy,.feature-labels .feature-copy{min-height:0;height:100%}.feature-airport h2,.feature-labels h2{font-size:17px;margin:0 0 8px}.feature-airport .feature-copy,.feature-labels .feature-copy{padding:12px;justify-content:flex-end}.feature-airport .feature-copy>.icon,.feature-labels .feature-copy>.icon{display:none}.feature-airport .button,.feature-labels .button{min-height:32px;padding:8px;font-size:11px}.feature-airport .button .icon,.feature-labels .button .icon{display:none}.category-filters .preview-toggle{flex-basis:auto;min-height:32px;border:0;color:var(--blue-text);padding:8px}.tool-art .art-primary[src*="subtitles-input"]{object-fit:cover;object-position:left center}.tool-art .art-primary[src*="preview"]{object-fit:contain;background:var(--surface)}}
@media(prefers-reduced-motion:reduce){.js .tool-entry:hover .art-preview{transform:none}}
/* Bounded finish-review fixes: material, explicit actions, result access, contrast and type. */
.tool-art .art-primary[src*="/previews/"]{object-fit:contain;background:var(--surface)}
.tool-list>li>.tool-entry,.tool-index>li>.tool-entry{margin:0;align-self:stretch;border:0;border-radius:0;text-decoration:none;width:100%}.hub-entry .entry-copy{padding:20px}.hub-entry .entry-copy h2{font-size:21px;margin:0 0 12px}.hub-entry .entry-action{margin-top:auto;min-height:44px;font-size:13px;color:var(--blue-text);padding:12px 16px;border-color:var(--rule)}.hub-entry .entry-copy>p:last-of-type{margin-bottom:16px}.hub-entry .entry-copy p{font-size:14px}
.mobile-result-jump{display:none}
@media (hover: hover) and (pointer: fine){.primary:hover,.btn--primary:hover,.button:not(.quiet):hover,.download:hover{background:var(--blue-text);color:var(--bg)}}
@media(max-width:600px){.language-switch a{font-size:12px;min-height:44px;padding:8px 4px}.interface-language{font-size:11px}.mobile-result-jump{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border:1px solid var(--input-rule);border-radius:var(--radius-input);background:var(--raised);color:var(--blue-text);text-decoration:none;font-size:14px;min-height:48px;margin:0 0 20px}.mobile-result-jump:hover{color:var(--ink);border-color:var(--blue-text)}.mobile-result-jump span{flex:1}.hub-entry .entry-copy{padding:20px}.tool-list .hub-entry .tool-art,.tool-index .hub-entry .tool-art{aspect-ratio:16/8}}
/* User-directed task icon system: no repeated photographic or screenshot cards. */
.graphic-field{background:linear-gradient(135deg,var(--raised),var(--surface));isolation:isolate;aspect-ratio:16/8}.graphic-field::before{content:"";position:absolute;inset:0 0 0 46%;background:linear-gradient(125deg,color-mix(in srgb,var(--blue) 20%,var(--raised)),var(--surface));transform:skewX(-16deg);transition:transform var(--dur-micro) var(--ease-out),opacity var(--dur-micro) ease}.graphic-main{position:absolute;left:16%;top:22%;color:var(--blue-text)}.graphic-main .icon{width:104px;height:104px;stroke-width:1.15;transition:transform var(--dur-micro) var(--ease-out)}.graphic-detail{position:absolute;right:16%;bottom:20%;color:var(--blue);opacity:.65;transition:opacity var(--dur-micro) ease}.graphic-detail .icon{width:48px;height:48px;stroke-width:1.25}.graphic-rule{position:absolute;left:16%;bottom:14%;height:2px;width:28%;background:var(--rule)}.graphic-detail code{font-size:22px;line-height:1.5;color:var(--blue-text)}
.art-video .graphic-main{transform:rotate(-7deg);left:14%}.art-images .graphic-main{left:22%;top:20%}.art-images .graphic-detail{right:12%;top:16%;bottom:auto}.art-subtitles .graphic-main{left:12%;top:28%}.art-subtitles .graphic-rule{left:auto;right:14%;bottom:14%;width:24%}.art-label-dots .graphic-main{left:16%;transform:rotate(-12deg)}.art-label-dots .graphic-detail{right:18%;bottom:18%;transform:rotate(90deg)}.art-label-zpl .graphic-main{left:14%;top:24%}.art-label-ribbon .graphic-main{left:18%;top:20%}.art-label-ribbon .graphic-detail{right:12%;bottom:24%}.art-label-fit .graphic-main{left:22%;top:20%}.art-label-fit .graphic-detail{right:13%;bottom:20%;transform:rotate(90deg)}.art-label-wind .graphic-main{left:22%;top:20%}.art-label-wind .graphic-rule{height:48%;width:2px;left:auto;right:22%;bottom:20%}.art-label-a4 .graphic-main{left:18%;top:22%}.art-label-a4 .graphic-detail{right:16%;bottom:16%}.art-label-a4 .graphic-detail .icon{width:60px;height:72px}.art-packwise .graphic-main{transform:rotate(-8deg);left:18%}.art-packwise .graphic-detail{transform:rotate(-30deg)}.art-printmeasure .graphic-main{left:20%;top:20%}.art-parcelmath .graphic-main{left:20%;top:18%}.art-parcelmath .graphic-rule{left:58%;bottom:18%;width:26%}.art-airport .graphic-main{transform:rotate(-16deg);left:18%}.art-airport .graphic-detail{transform:rotate(-20deg);right:12%}
.heading-glyph{position:absolute;right:32px;top:20px;color:var(--blue-text)}.heading-glyph .icon{width:80px;height:80px;stroke-width:1.1}.js .feature:hover .feature-photo{opacity:1}
@media (hover: hover) and (pointer: fine){.tool-entry:hover .graphic-main .icon{transform:translateY(-2px)}.tool-entry:hover .graphic-detail{opacity:1}.tool-entry:hover .graphic-field::before{transform:skewX(-16deg) translateX(8px)}}
@media(max-width:600px){.graphic-main .icon{width:64px;height:64px}.graphic-detail .icon{width:32px;height:32px}.graphic-detail code{font-size:16px}.art-label-a4 .graphic-detail .icon{width:36px;height:44px}.hub-entry .graphic-main .icon{width:96px;height:96px}.hub-entry .graphic-detail .icon{width:48px;height:48px}.hub-entry .art-label-a4 .graphic-detail .icon{width:60px;height:72px}.hub-entry .graphic-detail code{font-size:22px}.heading-glyph{right:8px;top:16px;opacity:.7}.heading-glyph .icon{width:48px;height:48px}}
@media(prefers-reduced-motion:reduce){.tool-entry:hover .graphic-main .icon{transform:none}.tool-entry:hover .graphic-field::before{transform:skewX(-16deg)}}
