:root{--vel:#ECE6D8;--vel2:#E2DACA;--ink:#16233F;--ink2:#2F4A7A;--red:#E04A1F;--ver:#2F7F72;--gr:#9C9686;--serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,"Times New Roman",serif;--mono:ui-monospace,"SF Mono",Menlo,Consolas,"DejaVu Sans Mono","Liberation Mono",monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--vel);color:var(--ink);font:18px/1.6 var(--serif);background-image:linear-gradient(rgba(22,35,63,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(22,35,63,.05) 1px,transparent 1px);background-size:32px 32px}
a{color:var(--ink);text-decoration-color:var(--red);text-underline-offset:3px}a:hover{color:var(--red)}
:focus-visible{outline:3px solid var(--red);outline-offset:3px}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--vel);padding:8px 14px;z-index:99}.skip:focus{left:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.code{font:600 .72rem/1 var(--mono);letter-spacing:.08em;color:var(--red);margin-right:.7em}
.shell{display:grid;grid-template-columns:270px 1fr;min-height:100dvh}
.rail{position:sticky;top:0;height:100dvh;background:var(--ink);color:var(--vel);display:flex;flex-direction:column;padding:26px 22px;border-right:6px solid var(--red);overflow:auto}
.rail a{color:var(--vel);text-decoration:none}.rail a:hover{color:#fff}
.brand{display:flex;gap:10px;align-items:center;margin-bottom:34px}.wm{width:46px;height:46px;flex:none}.brand .wm{color:var(--vel)}
.bw b{display:block;font:700 1.05rem/1 var(--mono);letter-spacing:.16em}.bw i{font:italic .85rem var(--serif);opacity:.75}
.rail-h{font:.7rem var(--mono);letter-spacing:.2em;text-transform:uppercase;opacity:.6;margin:0 0 8px}
.rail ul{list-style:none;margin:0;padding:0}.rail li a{display:block;padding:9px 0;border-bottom:1px solid rgba(236,230,216,.15);font-size:1rem}
.rail li a[aria-current]{color:var(--red);font-style:italic}.rail li a[aria-current]::after{content:" ◂"}
.dd{margin-top:18px}.dd-btn{all:unset;cursor:pointer;display:flex;justify-content:space-between;width:100%;font:.75rem var(--mono);letter-spacing:.14em;text-transform:uppercase;padding:8px 0;opacity:.85}
.dd-btn[aria-expanded=true] span{transform:rotate(180deg)}.dd-btn:focus-visible{outline:2px solid var(--red)}
.rail-foot{margin-top:auto;padding-top:24px;display:grid;gap:10px}.lang{font:.78rem var(--mono)}
.cta{display:block;text-align:center;background:var(--red);padding:12px;font:600 .8rem var(--mono);letter-spacing:.08em;text-transform:uppercase}
.menu-btn{display:none}
main{padding:40px clamp(18px,5vw,80px) 80px;position:relative;min-width:0}main:focus{outline:none}
.sheet-tag{position:absolute;right:24px;top:20px;font:.72rem var(--mono);letter-spacing:.15em;text-transform:uppercase;border:1px solid var(--ink);padding:5px 9px;background:var(--vel)}
.phero{position:relative;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:20px 40px;align-items:end;padding:60px 0 50px 34px;border-bottom:2px solid var(--ink)}
.phero>*:not(.sculpt):not(.dim){grid-column:1}
.kick{font:.78rem var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--red);margin:0}
h1{font-weight:400;font-size:clamp(2.6rem,7vw,6.2rem);line-height:.95;letter-spacing:-.02em;margin:0}h1 em{color:var(--red)}
.lead{font-size:1.2rem;max-width:36em;margin:0}
.dim{position:absolute;left:0;top:60px;bottom:50px;width:12px;height:calc(100% - 110px);stroke:var(--red);stroke-width:1.4;fill:none}
.sculpt{grid-column:2;grid-row:1/span 3;width:100%;max-width:460px;justify-self:end}
.blk{animation:drop .9s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--d)}
@keyframes drop{from{transform:translateY(-60px);opacity:0}}
.seam{stroke-dashoffset:200;animation:draw 2.4s .8s linear forwards,march 3s 3.2s linear infinite}
@keyframes draw{to{stroke-dashoffset:0}}@keyframes march{to{stroke-dashoffset:-32}}
.ticker{overflow:hidden;border-bottom:1px solid var(--ink);font:.8rem var(--mono);letter-spacing:.2em;padding:10px 0;white-space:nowrap}
.ticker div{display:inline-block;animation:tick 40s linear infinite}@keyframes tick{to{transform:translateX(-50%)}}
.plate{position:relative;margin:56px 0;border:1.5px solid var(--ink);padding:56px clamp(18px,4vw,48px) 36px;background:rgba(236,230,216,.85)}
.plate-h{position:absolute;top:-1.5px;left:-1.5px;display:flex;align-items:stretch;border:1.5px solid var(--ink);background:var(--vel)}
.pn{font:700 .8rem var(--mono);background:var(--ink);color:var(--vel);padding:8px 12px;display:flex;align-items:center}
.plate-h h2{margin:0;padding:6px 14px;font-size:1.05rem;font-weight:400;font-style:italic}
.plate.inv{background:var(--ink);color:var(--vel)}.plate.inv a{color:var(--vel)}.plate.inv dt{color:var(--gr)}
h2{font-weight:400;font-size:clamp(1.5rem,3vw,2.1rem);line-height:1.15}
.schedule{display:grid}.srow{display:grid;grid-template-columns:70px 220px 1fr 30px;gap:16px;padding:18px 0;border-bottom:1px solid var(--gr);text-decoration:none;align-items:baseline;transition:transform .3s}
.srow b{font-size:1.25rem;font-weight:400}.srow:hover{transform:translateX(8px)}.srow:hover .arr{color:var(--red)}
.princ{counter-reset:p;list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0}
.princ li{padding:18px 22px;border-left:1.5px solid var(--ink)}.princ li:nth-child(2){margin-top:40px}.princ li:nth-child(3){margin-top:80px}
.princ b{font-size:1.3rem;font-weight:400;font-style:italic}
.split{display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:space-between}.big{font-size:1.4rem;max-width:34em;margin:0}
.btn{display:inline-block;font:600 .8rem var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:13px 20px;border:1.5px solid currentColor;background:transparent;color:inherit;cursor:pointer;text-decoration:none}
.btn-red{background:var(--red);border-color:var(--red);color:var(--vel)!important}.btn:hover{transform:translateY(-2px)}
.deliv{columns:2 280px;list-style:none;padding:0}.deliv li{break-inside:avoid;padding:10px 0 10px 28px;border-bottom:1px dashed var(--gr);position:relative}
.deliv li::before{content:"";position:absolute;left:0;top:18px;width:14px;height:8px;border:1.5px solid var(--red);transform:skewX(-30deg)}
.photo-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:40px;align-items:center;margin:56px 0}
.photo{margin:0}.photo-frame{width:100%;overflow:hidden;border:1.5px solid var(--ink);box-shadow:12px 12px 0 var(--ink2);background:var(--vel2)}
.photo.tall .photo-frame{max-height:620px}.photo img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.75) contrast(1.05)}
.photo.wide{margin:56px 0}.photo.wide .photo-frame{aspect-ratio:21/9!important}
.photo figcaption{font:.75rem/1.5 var(--mono);margin-top:18px;color:#4c4a43}
.photo-note{font-size:clamp(1.3rem,2.4vw,1.9rem);line-height:1.3;font-style:italic;border-left:4px solid var(--red);padding-left:24px}
.spec{display:grid;grid-template-columns:90px 1fr 1fr;gap:28px;padding:40px 0;border-bottom:1.5px solid var(--ink)}
.spec-c{font:700 1.6rem var(--mono);color:var(--red)}.spec h2{margin-top:0}.spec h3{font:.75rem var(--mono);letter-spacing:.15em;text-transform:uppercase}
.ticks,.cross{list-style:none;padding:0}.ticks li,.cross li{padding:6px 0 6px 28px;position:relative}
.ticks li::before{content:"";position:absolute;left:2px;top:14px;width:12px;height:6px;border-left:2px solid var(--ver);border-bottom:2px solid var(--ver);transform:rotate(-45deg)}
.cross li::before{content:"×";position:absolute;left:2px;color:var(--red);font-weight:700}
.section-cut{list-style:none;padding:0;margin:50px 0;border-left:3px solid var(--ink)}
.layer{display:grid;grid-template-columns:80px 1fr 260px;gap:24px;padding:24px;border-bottom:1px solid var(--gr);margin-left:calc(var(--i)*14px);background:linear-gradient(90deg,rgba(22,35,63,calc(.03 + var(--i)*.02)),transparent)}
.lnum{font:700 2rem var(--mono);color:var(--red)}.layer h2{margin:0 0 6px}.layer dl{margin:0;font-size:.95rem}.layer dt{font:.7rem var(--mono);text-transform:uppercase;letter-spacing:.12em;color:#5b584f}.layer dd{margin:0 0 8px}
.qt{width:100%;border-collapse:collapse}.qt th,.qt td{text-align:left;padding:12px;border-bottom:1px solid var(--gr)}.qt th{font:.75rem var(--mono);text-transform:uppercase;letter-spacing:.1em}
.tool{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:32px;margin:50px 0;border:1.5px solid var(--ink);padding:32px;background:var(--vel)}
.rng{display:block;margin-bottom:20px}.rng span{display:flex;justify-content:space-between;font:.85rem var(--mono)}.rng output{font-weight:700;color:var(--red);font-size:1.2rem}
input[type=range]{width:100%;accent-color:var(--red)}
.presets{border:1px dashed var(--gr);padding:12px;display:flex;flex-wrap:wrap;gap:8px}.presets legend{font:.72rem var(--mono);text-transform:uppercase}
.chip{font:.75rem var(--mono);background:transparent;border:1px solid var(--ink);padding:6px 10px;cursor:pointer;color:var(--ink)}.chip:hover{background:var(--ink);color:var(--vel)}
#qsvg{width:100%;height:auto;border:1px solid var(--gr);background:#F3EFE5}
.res{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.res div{border-top:1.5px solid var(--ink);padding-top:6px}.res dt{font:.7rem var(--mono);text-transform:uppercase}.res dd{margin:0;font-size:1.15rem}
.ok{color:var(--ver)}.bad{color:var(--red)}.verdict{font-style:italic;font-size:1.1rem}
.cols2{display:grid;grid-template-columns:1fr 1fr;gap:36px}.cols3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.role{border-top:4px solid var(--red);padding-top:10px}.role b{font-size:1.3rem;font-weight:400;font-style:italic}
.kv{display:grid;grid-template-columns:140px 1fr;gap:8px 18px;margin:0}.kv dt{font:.72rem var(--mono);text-transform:uppercase;letter-spacing:.1em;padding-top:5px}.kv dd{margin:0}
.toc{border:1.5px solid var(--ink);padding:16px 26px;margin:40px 0;font-family:var(--mono);font-size:.9rem;background:var(--vel)}
.art{display:grid;grid-template-columns:90px minmax(0,1fr);gap:0 28px;padding:40px 0;border-bottom:1.5px solid var(--ink)}
.art .pn{grid-row:span 2;align-self:start;justify-content:center}.art h2{margin:0 0 12px}
.prose{max-width:44em}.prose>p:first-child::first-letter{float:left;font-size:3.4em;line-height:.85;padding:4px 8px 0 0;color:var(--red)}
.prose code{font:.85em var(--mono);background:var(--vel2);padding:1px 5px}
.policy{margin:40px 0}.policy h2{font-size:1.3rem;border-top:1px solid var(--gr);padding-top:16px}.policy>p:first-of-type::first-letter{float:none;font-size:inherit;padding:0;color:inherit}
.acc details{border-bottom:1px solid var(--gr)}.acc summary{cursor:pointer;padding:16px 0;font-size:1.15rem;list-style:none}.acc summary::after{content:"+";float:right;font-family:var(--mono);color:var(--red)}
.acc details[open] summary::after{content:"−"}.acc details p{margin:0 0 18px;max-width:46em}
.wo{display:grid;gap:16px}.wo-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.fld{display:grid;gap:5px}.fld span{font:.75rem var(--mono);text-transform:uppercase;letter-spacing:.08em}
input,select,textarea{font:inherit;font-size:1rem;color:var(--ink);background:#F5F1E8;border:1.5px solid var(--ink);padding:10px 12px;border-radius:0;width:100%}
input:focus,select:focus,textarea:focus{border-color:var(--red);outline:2px solid var(--red);outline-offset:0}
[aria-invalid=true]{border-color:var(--red);background:#F8E3DA}
.chk{display:flex;gap:10px;align-items:flex-start;font-size:.95rem}.chk input{width:20px;height:20px;flex:none;margin-top:4px;accent-color:var(--red)}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.status:empty{display:none}.status{padding:16px;border:1.5px solid var(--ink);font-size:1rem}.status.err{border-color:var(--red);background:#F8E3DA}.status.okk{border-color:var(--ver);background:#DCEBE5}
.status code{font:700 1.1rem var(--mono)}
.contact-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:40px;margin:50px 0}
.cblock{border:1.5px solid var(--ink);padding:24px;background:var(--vel);align-self:start}
.mapph{margin:22px 0 0;border:1.5px dashed var(--red);padding:12px}.mapph svg{width:100%;display:block}.mapph figcaption{font-size:.9rem;margin-top:10px}
.versus h3{font:.8rem var(--mono);text-transform:uppercase;letter-spacing:.15em}
.tblock{display:grid;grid-template-columns:repeat(6,1fr);border-top:6px solid var(--red);background:var(--ink);color:var(--vel);font-size:.9rem}
.tblock a,.linkbtn{color:var(--vel)}.tb-cell{padding:16px;border-right:1px solid rgba(236,230,216,.2);border-bottom:1px solid rgba(236,230,216,.2)}
.tb-cell small{display:block;font:.65rem var(--mono);text-transform:uppercase;letter-spacing:.15em;opacity:.6;margin-bottom:6px}
.tb-big{grid-column:span 2;display:flex;gap:12px;align-items:center}.tb-big b{display:block}.tb-big span{font-style:italic;opacity:.75}.tb-wide{grid-column:span 6;font-size:.8rem}
.linkbtn{background:none;border:0;padding:0;font:inherit;text-decoration:underline;text-decoration-color:var(--red);cursor:pointer}
.cookie{position:fixed;right:18px;bottom:18px;max-width:420px;background:var(--vel);border:2px solid var(--ink);box-shadow:8px 8px 0 var(--red);padding:18px 20px;z-index:50;font-size:.95rem}
.cookie p{margin:0 0 10px}.ck-b{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ck-b .btn{text-align:center;padding:11px 8px}
.js .rv{opacity:0;transform:translateY(28px);transition:opacity .8s,transform .8s cubic-bezier(.2,.8,.2,1)}.js .rv.in{opacity:1;transform:none}
.no-js .rv{opacity:1;transform:none}
@media (max-width:1100px){.tblock{grid-template-columns:repeat(3,1fr)}.tb-wide{grid-column:span 3}.layer{grid-template-columns:60px 1fr}.layer dl{grid-column:2}}
@media (max-width:900px){
.shell{grid-template-columns:1fr}.rail{position:sticky;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;padding:12px 16px;border-right:0;border-bottom:4px solid var(--red);z-index:40}
.brand{margin:0}.wm{width:36px;height:36px}.menu-btn{display:block;margin-left:auto;background:none;border:1.5px solid var(--vel);color:var(--vel);font:.8rem var(--mono);padding:8px 12px;text-transform:uppercase}
#sheets,.rail-foot{display:none;width:100%}.rail.open #sheets,.rail.open .rail-foot{display:block}.rail.open #sheets{padding-top:16px}.rail-foot .cta{margin-top:10px}
.phero{grid-template-columns:1fr;padding-left:24px}.sculpt{grid-column:1;grid-row:auto;justify-self:center;max-width:340px}
.srow{grid-template-columns:60px 1fr}.srow span:not(.code):not(.arr){grid-column:2}.srow .arr{display:none}
.spec{grid-template-columns:1fr}.tool,.contact-grid,.cols2,.photo-row{grid-template-columns:1fr}.cols3{grid-template-columns:1fr}
.princ li:nth-child(n){margin-top:0}.sheet-tag{display:none}.photo.tall .photo-frame{max-height:480px}}
@media (max-width:560px){body{font-size:17px}.wo-grid,.res{grid-template-columns:1fr}.tblock{grid-template-columns:1fr}.tb-big,.tb-wide{grid-column:span 1}.art{grid-template-columns:1fr}.art .pn{justify-self:start;margin-bottom:10px}.layer{margin-left:0;grid-template-columns:1fr}.layer dl{grid-column:1}.kv{grid-template-columns:1fr}.cookie{left:10px;right:10px;bottom:10px}.photo-frame{box-shadow:6px 6px 0 var(--ink2)}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.rv{opacity:1;transform:none}.seam{stroke-dashoffset:0}}
/* intrinsic sizing fixes */
main,.plate,.layer>*,.spec>*,.tool>*,.contact-grid>*,.cols2>*,.cols3>*,.photo-row>*,.art>*,.srow>*{min-width:0}
h1,h2,h3,p,li,dd,td,th,summary,figcaption,a{overflow-wrap:break-word;hyphens:auto}
.qt{table-layout:fixed}
.layer{max-width:calc(100% - var(--i)*14px)}
@media (max-width:900px){.layer{margin-left:0;max-width:100%}}
@media (max-width:560px){
 h1{font-size:clamp(2rem,11vw,2.6rem);overflow-wrap:anywhere}
 .plate{padding:60px 14px 24px}.plate-h{max-width:calc(100% + 3px)}.plate-h h2{font-size:.95rem}
 .qt,.qt tbody,.qt tr,.qt td{display:block;width:100%}.qt thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
 .qt tr{border-bottom:1.5px solid var(--ink);padding:8px 0}.qt td{border:0;padding:4px 0}
 .qt td::before{display:block;font:.68rem var(--mono);text-transform:uppercase;letter-spacing:.1em;color:#5b584f}
 .qt td:nth-child(1){font-size:1.1rem;font-style:italic}
 .qt td:nth-child(2)::before{content:var(--h2)}.qt td:nth-child(3)::before{content:var(--h3)}
 .layer{padding:18px 12px}.section-cut{border-left-width:2px}
}
/* desktop hero h1: no mid-word breaks */
@media (min-width:561px){
 h1{hyphens:none;-webkit-hyphens:none;overflow-wrap:normal;word-break:normal}
 body[data-page=index] .phero{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}
 body[data-page=index] h1{font-size:clamp(2.4rem,4.6vw,4.6rem)}
}
