:root{--ink:#08122b;--cobalt:#1647ff;--cobalt-dark:#0a2cbd;--lime:#c9ff32;--paper:#f3f5fa;--surface:#fff;--line:#b8c1d8;--muted:#58647e;--accent:var(--lime);font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;line-height:1.55}a{color:inherit}.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;z-index:30;background:#fff;padding:.7rem}.shell{width:min(1180px,calc(100% - 2rem));margin:auto}.theme-header, .workspace-header{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:0 max(1rem,calc((100% - 1180px)/2));background:var(--ink);color:#fff;border-bottom:1px solid #ffffff30;position:relative;z-index:10}.theme-mark, .theme-wordmark, .workspace-wordmark{display:grid;grid-template-columns:46px auto;grid-template-rows:auto auto;gap:0 .7rem;text-decoration:none}.theme-mark, .theme-wordmark, .workspace-wordmark>span{grid-row:1/3;display:grid;place-items:center;background:var(--lime);color:var(--ink);font:900 1rem 'Arial Black',Impact,sans-serif;transform:rotate(-3deg)}.theme-mark, .theme-wordmark, .workspace-wordmark strong{font:900 1.2rem 'Arial Black',Impact,sans-serif;text-transform:uppercase;letter-spacing:-.02em}.theme-mark, .theme-wordmark, .workspace-wordmark small{color:#9eabd0;font-size:.62rem;text-transform:uppercase;letter-spacing:.15em}.theme-header, .workspace-header nav{display:flex;align-items:center;gap:1.15rem}.theme-header, .workspace-header nav a{text-decoration:none;font-size:.86rem;font-weight:800}.nav-cta{padding:.65rem .8rem;background:var(--lime);color:var(--ink)}.menu{display:none}.workspace-hero{min-height:680px;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);position:relative;background:var(--cobalt);overflow:hidden}.hero-visual{min-height:680px;background:linear-gradient(90deg,transparent 72%,var(--cobalt)),url('../assets/site/hero-workspace.jpg') 47% center/cover no-repeat;filter:saturate(.68) contrast(1.08)}.hero-panel{align-self:center;padding:clamp(2rem,5vw,5.8rem) clamp(1.2rem,5vw,5.5rem) clamp(2rem,5vw,5rem) clamp(1rem,3vw,3rem);color:#fff;position:relative;z-index:1}.eyebrow{margin:0 0 .8rem;text-transform:uppercase;letter-spacing:.14em;font-size:.7rem;font-weight:900;color:var(--cobalt)}.hero-panel .eyebrow{color:var(--lime)}h1,h2,h3{font-family:'Arial Black',Impact,sans-serif;line-height:.98;letter-spacing:-.045em}h1{font-size:clamp(3.4rem,7vw,7.5rem);margin:.2rem 0 1.3rem;text-transform:uppercase}.hero-lead{max-width:36rem;font-size:1.12rem;color:#dbe3ff}.actions,.card-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:.75rem 1rem;background:var(--cobalt);color:#fff;text-decoration:none;border:1px solid transparent;font-weight:900}.hero-panel .button{background:var(--lime);color:var(--ink);box-shadow:6px 6px 0 var(--ink)}.text-link{font-weight:900;text-underline-offset:.25em}.hero-proof{display:grid;grid-template-columns:repeat(3,1fr);gap:0;list-style:none;padding:2.5rem 0 0;margin:2.5rem 0 0;border-top:1px solid #ffffff4a;color:#dbe3ff;font-size:.73rem}.hero-proof b{display:block;color:var(--lime);font-size:1rem}.hero-index{position:absolute;right:-.04em;bottom:-.35em;margin:0;color:#ffffff0d;font:900 18rem/1 'Arial Black',Impact,sans-serif}.workflow-band{background:var(--lime);padding:4rem 0}.workflow-band .eyebrow{color:var(--ink)}.journey{display:grid;grid-template-columns:repeat(3,1fr);border-top:3px solid var(--ink)}.journey article{display:grid;grid-template-columns:3rem 1fr;gap:1rem;padding:1.5rem 1.4rem 0 0;border-right:1px solid #08122b55}.journey article:last-child{border:0}.journey article>b{font:900 1.2rem 'Arial Black',Impact,sans-serif}.journey h2{font-size:1.3rem;margin:0}.journey p{margin:.6rem 0;color:#2c3a25}.workspace-section,.gear-section>.shell,main>section:not(.workspace-hero):not(.workflow-band):not(.gear-section),main>article{width:min(1180px,calc(100% - 2rem));margin:auto;padding:6rem 0}.section-heading{display:grid;grid-template-columns:1fr auto;align-items:end;gap:0 2rem;margin-bottom:2rem}.section-heading .eyebrow{grid-column:1/3}.section-heading h2{max-width:760px;margin:0;font-size:clamp(2.4rem,5vw,5rem);text-transform:uppercase}.section-heading>span,.section-heading>a{font-weight:900}.intent-board{border-top:3px solid var(--ink)}.intent-board a{display:grid;grid-template-columns:4rem minmax(12rem,.7fr) 1.3fr 2rem;gap:1rem;align-items:center;padding:1.4rem 0;border-bottom:1px solid var(--line);text-decoration:none}.intent-board a:hover{background:var(--lime)}.intent-board span,.intent-board b{font-family:'Arial Black',Impact,sans-serif}.intent-board small{color:var(--muted)}.gear-section{background:var(--ink);color:#fff;padding:0}.gear-section .eyebrow{color:var(--lime)}.gear-section .section-heading>a{color:var(--lime)}.product-strip,.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.card{background:var(--surface);color:var(--ink);border:1px solid var(--line);overflow:hidden;box-shadow:7px 7px 0 var(--cobalt)}.product-card__body{display:grid;gap:.55rem;padding:1.1rem}.card h2,.card h3{margin:.1rem 0}.card h2{font-size:1.35rem}.card img,.product-image{display:block;width:100%;aspect-ratio:4/3;object-fit:contain;background:#eef1f7}.product-image--empty{display:grid;place-items:center;text-align:center}.product-image--empty span{display:grid;place-items:center;width:2.5rem;height:2.5rem;margin:auto;background:var(--cobalt);color:#fff;font-weight:900}.price{font:900 1.35rem 'Arial Black',Impact,sans-serif}.decision-note{display:grid;gap:.15rem;padding:.7rem .8rem;background:#eaf0ff;font-size:.88rem}.decision-note--caution{background:#f4ffd7}.merchant-disclosure,.decision-note span{color:var(--muted);line-height:1.4}.card-actions{justify-content:space-between;margin-top:.7rem}.button--shop{background:#ee4d2d}.breadcrumbs{color:var(--muted);margin-bottom:1.5rem}.finder{display:flex;gap:1rem;flex-wrap:wrap;padding:1rem;background:#fff;border:1px solid var(--line)}.finder label{display:grid;gap:.35rem;flex:1;min-width:180px}.finder input,.finder select{padding:.75rem;border:1px solid var(--line);font:inherit}.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.7rem}.facts div,.compare-products article,.merchant-panel{background:#fff;border:1px solid var(--line);padding:1rem}.facts dt{color:var(--muted);font-size:.8rem}.facts dd{margin:0;font-weight:800}.split,.compare-products{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.table-wrap{overflow:auto;border:1px solid var(--line)}table{width:100%;border-collapse:collapse;background:#fff;min-width:42rem}th,td{padding:.85rem;text-align:left;border-bottom:1px solid var(--line)}thead{background:var(--cobalt);color:#fff}.editorial{max-width:780px}.empty{padding:2rem;text-align:center}footer{display:grid;grid-template-columns:1fr 1fr;gap:3rem;padding:4rem max(1rem,calc((100% - 1180px)/2));background:var(--cobalt);color:#fff}footer>div:first-child strong{font:900 clamp(2rem,4vw,3.8rem)/1 'Arial Black',Impact,sans-serif;text-transform:uppercase}.footer-kicker{color:var(--lime);font-size:.72rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}footer a{color:var(--lime)}
@media(max-width:900px){.theme-header, .workspace-header{min-height:68px}.menu{display:block;background:var(--lime);border:0;padding:.65rem;font-weight:900}.theme-header, .workspace-header nav{display:none;position:absolute;top:68px;inset-inline:0;padding:1rem;background:var(--ink)}.theme-header, .workspace-header nav.open{display:grid}.workspace-hero{grid-template-columns:1fr}.hero-visual{min-height:340px;background:linear-gradient(0deg,var(--cobalt),transparent 45%),url('../assets/site/hero-workspace.jpg') center/cover}.hero-panel{padding:0 1rem 3rem}.hero-proof{gap:.5rem}.journey,.product-strip,.grid{grid-template-columns:1fr}.journey article{border-right:0;border-bottom:1px solid #08122b55;padding-bottom:1.5rem}.section-heading{display:block}.section-heading>span,.section-heading>a{display:inline-block;margin-top:1rem}.intent-board a{grid-template-columns:2.5rem 1fr 2rem}.intent-board small{grid-column:2}.split,.compare-products,footer{grid-template-columns:1fr}}
@media(max-width:480px){.theme-mark, .theme-wordmark, .workspace-wordmark small{display:none}.theme-mark, .theme-wordmark, .workspace-wordmark{grid-template-rows:auto}.theme-mark, .theme-wordmark, .workspace-wordmark>span{grid-row:1}.workspace-hero,.hero-visual{min-height:285px}.hero-panel h1{font-size:3.2rem}.hero-proof{grid-template-columns:1fr}.workspace-section,.gear-section>.shell,main>section:not(.workspace-hero):not(.workflow-band):not(.gear-section),main>article{padding:4rem 0}.intent-board a{grid-template-columns:2rem 1fr}.intent-board a b{display:none}.card-actions .button{width:100%}table{min-width:0}thead{position:absolute;width:1px;height:1px;overflow:hidden}tbody,tr,th,td{display:block}tbody tr{border-bottom:2px solid var(--ink)}tbody td:before{content:attr(data-label);display:block;color:var(--muted);font-weight:800}footer{gap:1rem}}
/* Shared layout structure. The layout names these the same way in every theme, and no theme
   defined them, so they rendered with browser defaults: a skip link visible on the page, a
   three-column grid that was one column, a secondary button with no affordance. Only custom
   properties are used, so each theme gets this in its own colours. */
.skip-link{position:absolute;left:-9999px;top:0;z-index:100;padding:.6rem 1rem;background:var(--ink,#17332d);color:var(--paper,#fff);text-decoration:none}
.skip-link:focus{left:0}
.three{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}
.prose>:first-child{margin-top:0}
.prose>*:last-child{margin-bottom:0}
.lede{font-size:1.125rem;line-height:1.6;opacity:.88;margin:0 0 1rem}
.section-intro{max-width:60ch;opacity:.85;margin:0 0 1.5rem}
.hero-note{padding:.75rem 1rem;border:1px solid currentColor;border-radius:.5rem;opacity:.9}
.result-heading{font-size:1.25rem;margin:0 0 .75rem}
.footer-label{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;opacity:.7}
.journey,.needs{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}
.trust{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;align-items:center}

/* The navigation disclosure. Every theme opens its menu from a summary element, and without this
   the closed menu still occupied the header as a plain row of links. */
.navigation{display:flex;align-items:center}
.navigation>summary{cursor:pointer;list-style:none}
.navigation>summary::-webkit-details-marker{display:none}
.navigation[open]>summary~nav{position:absolute;right:1rem;top:100%;min-width:14rem;padding:.75rem;background:var(--paper,#fff);border:1px solid var(--line,#ccc);z-index:30}

/* A button with no fill, so a secondary action reads as secondary rather than as text. */
.ghost{background:none;border:1px solid currentColor;border-radius:.35rem}
.ghost:hover{opacity:.8}

/* The text column beside a hero image, and the hero mark inside the wordmark. */
.shell.hero-copy,.hero-copy{min-width:0}
.theme-mark,.brand-spark{display:inline-flex;align-items:center;gap:.35rem}

/* Inherited from editorial-room.
   This theme inherits editorial-room's templates, so it inherits their styles too.
   Its own rules come first and win; these supply what it never wrote. Generated by
   tools/theme-inherited-base.php. */
/* Editorial Room stylesheet.
 *
 * Adapted from prototypes/vacuum-indonesia/styles.css so the published artifact looks like the
 * vacuum prototype. The Blade templates use the prototype's own class names, so every class they
 * emit is defined here. Two deliberate deviations: the hero uses a gradient instead of the
 * prototype's local scene photo (canonical artifacts carry no prototype assets), and the mobile
 * menu uses a <details> toggle instead of JS (canonical audit rejects inline scripts).
 */
:root{--ink:#18231f;--green:#18372f;--leaf:#2f7359;--mint:#e7f1eb;--paper:#f8f7f1;--line:#d8ddd8;--sun:#e9d071;--muted:#58645f}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 system-ui,sans-serif}main,section,article,aside,header,footer{min-width:0}p,li,dd,a{overflow-wrap:anywhere}a{color:inherit}img{max-width:100%;display:block}:focus-visible{outline:3px solid #9b6d00;outline-offset:3px}
.skip-link{position:absolute;left:-999px}.skip-link:focus{left:1rem}.shell{width:min(1180px,calc(100% - 2rem));margin-inline:auto}.section{padding:clamp(3rem,7vw,5rem) 0}.section-intro{max-width:68ch;color:var(--muted)}
header{display:flex;align-items:center;gap:1rem;padding:.8rem max(1rem,calc((100% - 1180px)/2));border-bottom:1px solid var(--line);position:sticky;top:0;background:#f8f7f1ee;backdrop-filter:blur(12px);z-index:5}.logo{font:900 1.4rem Georgia,serif;text-decoration:none}.logo span{color:var(--leaf)}.logo small{display:block;font:600 .6rem system-ui;text-transform:uppercase;letter-spacing:.16em;color:var(--muted)}
.navigation{margin-left:auto}.navigation summary{cursor:pointer;list-style:none;border:1px solid var(--line);border-radius:8px;background:white;padding:.5rem .7rem;font-weight:700}.navigation summary::-webkit-details-marker{display:none}.navigation nav{display:flex;gap:.4rem;flex-wrap:wrap;padding:.8rem 0}.navigation nav a{padding:.45rem .6rem;border-radius:8px;text-decoration:none;font-weight:700}.navigation nav a[aria-current]{background:var(--mint)}
.hero{min-height:560px;background:linear-gradient(105deg,#102b24f2,#18372fcf 55%,#18372f55);color:white;display:flex;align-items:center}.hero-shade{width:100%}.hero-copy{color:white}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.75rem;font-weight:900;color:var(--leaf)}.hero-copy .eyebrow{color:#d8ed80}h1,h2,h3{font-family:Georgia,serif;line-height:1.05}h1{font-size:clamp(2.6rem,7vw,5rem);max-width:850px;margin:.4rem 0}.lede{max-width:680px;font-size:1.15rem}.actions{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;margin-top:1rem}.button{background:var(--sun);color:var(--ink);padding:.85rem 1rem;border-radius:4px;text-decoration:none;font-weight:900;border:0}.button.ghost{background:transparent;color:white;border:1px solid #ffffff88}.button.light{color:var(--ink)}.button.full{width:100%;text-align:center}.hero-note{opacity:.85;font-size:.9rem}
.journey{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:2rem}.journey article{background:white;border:1px solid var(--line);border-radius:12px;padding:1.5rem}.journey span{font-weight:900;color:var(--leaf)}.journey b{display:block;margin:.3rem 0}.journey p{margin:0;color:var(--muted)}
.needs{display:grid;gap:.8rem;margin-top:1rem}.needs a{display:flex;gap:1rem;align-items:baseline;background:white;border:1px solid var(--line);border-radius:12px;padding:1.1rem 1.2rem;text-decoration:none}.needs b{font-size:1.05rem}.needs span{color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.grid.two{grid-template-columns:repeat(2,1fr)}
.card{background:white;border:1px solid var(--line);border-radius:12px;padding:1.2rem;min-width:0}.card-body>*+*{margin-top:.6rem}.brand-mark{font-weight:900;color:var(--leaf);text-transform:uppercase;letter-spacing:.08em;font-size:.75rem}.card h3{margin:.2rem 0;font-size:1.1rem}.card h3 a{text-decoration:none}.card-actions{margin-top:.6rem}.card-price{display:block}.card-disclosure{font-size:.85rem;color:var(--muted)}
.product-hero{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:1.5rem;align-items:start}.product-media img{border-radius:12px}.product-media figcaption{font-size:.85rem;color:var(--muted)}.image-fallback{display:grid;place-items:center;gap:.4rem;background:var(--mint);border:1px dashed var(--line);border-radius:12px;min-height:220px;color:var(--muted)}.image-fallback.full{min-height:320px}
.price{font-size:1.4rem;font-weight:900}.compare-price{font-variant-numeric:tabular-nums}.offer-status{font-size:.9rem}.muted{color:var(--muted)}.source{font-size:.85rem;font-weight:700}.source-list{list-style:none;padding:0}.source-list li{padding:.4rem 0;border-top:1px solid var(--line)}
.facts{list-style:none;padding:0;display:grid;gap:.5rem}.facts li{background:white;border:1px solid var(--line);border-radius:8px;padding:.6rem .8rem}.claim{display:inline-block;font-size:.7rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em;border-radius:6px;padding:.15rem .45rem;margin-right:.5rem;background:var(--mint);color:var(--green)}.claim.official{background:#dcefe4}.claim.editorial{background:#fdf0d5}.claim.third{background:#e8e4f6}
.detail{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:1.5rem;margin-top:1.5rem}.detail aside{background:white;border:1px solid var(--line);border-radius:12px;padding:1.2rem;align-self:start}.yes{border-left:4px solid var(--leaf);padding-left:.6rem}.no{border-left:4px solid #b3541e;padding-left:.6rem}
.prose{max-width:72ch}.prose h2{margin-top:1.5rem}.editorial{background:white;border:1px solid var(--line);border-radius:12px;padding:1.5rem}
.brands .brand-mark{display:block;background:white;border:1px solid var(--line);border-radius:12px;padding:1.2rem;text-decoration:none}.category{display:block;background:white;border:1px solid var(--line);border-radius:12px;padding:1.2rem;text-decoration:none}.category h3{margin:.2rem 0}.textlink{font-weight:700}.text-link{font-weight:700;color:var(--leaf)}
.compare table,.spec-table{width:100%;border-collapse:collapse;background:white}.compare th,.compare td,.spec-table th,.spec-table td{border:1px solid var(--line);padding:.6rem;text-align:left;vertical-align:top}
.result-heading{background:var(--mint);border-radius:12px;padding:.8rem 1rem}.trust{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;background:white;border:1px solid var(--line);border-radius:12px;padding:1.5rem;margin-top:1.5rem}.sources{font-size:.95rem}.disclosure{font-size:.9rem;color:var(--muted)}
footer{display:grid;grid-template-columns:1fr 1fr;gap:2rem;background:var(--green);color:white;padding:3rem max(1rem,calc((100% - 1180px)/2))}footer a{color:white}
.empty{background:white;border:1px dashed var(--line);border-radius:12px;padding:1.5rem}.empty h3{margin-top:0}.three{grid-template-columns:repeat(3,1fr)}
@media(max-width:900px){.grid,.grid.two,.three,.journey,.product-hero,.detail,.trust{grid-template-columns:1fr}h1{font-size:clamp(2.2rem,10vw,3.2rem)}footer{grid-template-columns:1fr}}
/* Interface elements the templates use that neither the theme's own sheet nor the prototype it was
   adapted from defines. Only custom properties are used, so each theme gets these in its own
   colours. Generated by tools/theme-residual-styles.php. */
.buy-box-header{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:baseline;justify-content:space-between;padding:.75rem 0;border-bottom:1px solid var(--line,#ddd);margin-bottom:1rem}
.buy-box-header h2,.buy-box-header h3{margin:0}
.calc-range{width:100%;accent-color:var(--brand,var(--purple,#6f2cff))}
.slider-control{display:grid;gap:.35rem;margin-bottom:1rem}
.slider-control label{font-size:.875rem;opacity:.85}
.compare-form{display:grid;gap:1rem;padding:1rem;border:1px solid var(--line,#ddd);border-radius:.5rem;margin-bottom:1.5rem}
.compare-form select,.compare-form input{width:100%;padding:.5rem;border:1px solid var(--line,#ddd);border-radius:.35rem;background:var(--paper,#fff);color:inherit;font:inherit}
.aspect-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));margin:1.5rem 0}
.aspect-card{padding:1rem;border:1px solid var(--line,#ddd);border-radius:.5rem}
.aspect-card h3{margin:0 0 .5rem}
.aspect-diff{display:grid;gap:.35rem}
.aspect-diff>div{display:flex;justify-content:space-between;gap:1rem;padding:.35rem 0;border-bottom:1px dashed var(--line,#ddd)}
.aspect-winner-row{font-weight:700;color:var(--brand,var(--purple,#6f2cff))} pre,code{white-space:pre-wrap;overflow-wrap:anywhere}