*,:before,:after{box-sizing:border-box}html{font-family:var(--font);font-size:var(--pt-body);color:var(--ink);background:var(--canvas);-webkit-print-color-adjust:exact;print-color-adjust:exact;line-height:1.6}body,h1,h2,h3,h4,p,ul,ol,pre,table{margin:0}a{color:inherit}.num{font-variant-numeric:tabular-nums;direction:ltr;unicode-bidi:isolate}@page{size:297mm 210mm;margin:0}.sheet{inline-size:var(--page-w);block-size:var(--page-h);padding:var(--page-margin);background:var(--canvas);break-after:page;break-inside:avoid;flex-direction:column;gap:4mm;display:flex;overflow:hidden}.print{background:var(--gray-300);flex-direction:column;align-items:center;gap:8mm;padding:8mm 0;display:flex}@media print{.print{background:0 0;padding:0;display:block}}.sh-head{flex:none;align-items:center;gap:4mm;block-size:13mm;display:flex}.sh-num{font-size:var(--pt-sheet-num);color:var(--gray-300);font-weight:600;line-height:1}.sh-titles{flex-direction:column;line-height:1.35;display:flex}.sh-title{font-size:var(--pt-title);font-weight:600}.sh-skill{font-size:var(--pt-label);color:var(--gray-600)}.sh-spacer{flex:1}.sh-foot{font-size:var(--pt-label);color:var(--gray-600);border-block-start:1px solid var(--line);flex:none;justify-content:space-between;padding-block-start:2mm;display:flex}.badge,.abbr{font-size:var(--pt-label);white-space:nowrap;direction:ltr;unicode-bidi:isolate;border-radius:99px;padding:0 2.2mm;font-weight:500;line-height:1.5;display:inline-block}.badge{background:var(--copper-tint);color:var(--copper-text);padding-block:.6mm}.abbr{background:var(--canvas);color:var(--gray-600)}.qr{flex:none;block-size:13mm;inline-size:13mm;display:block}.qr svg{block-size:100%;inline-size:100%;display:block}.qr-draft{border:1px dashed var(--gray-300);border-radius:var(--radius-sm);font-size:var(--pt-min);color:var(--gray-500);place-items:center;display:grid}.headline{font-size:var(--pt-headline);text-wrap:balance;max-inline-size:235mm;font-weight:600;line-height:1.4}.thread{inline-size:var(--thread-w);block-size:var(--thread-h);background:var(--copper);margin-block-start:2.5mm}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);min-block-size:0;padding:4mm}@media print{.card,.kpi{box-shadow:none!important}}.kpis{gap:var(--gutter);flex:none;grid-template-columns:repeat(4,1fr);display:grid}.kpi{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:.5mm;padding:3mm 4mm;display:flex}.kpi-top{justify-content:space-between;align-items:center;gap:2mm;display:flex}.kpi-label{font-size:var(--pt-body);color:var(--gray-600)}.kpi-mid{justify-content:space-between;align-items:center;gap:2mm;display:flex}.kpi-value{font-size:var(--pt-kpi);white-space:nowrap;font-weight:600;line-height:1.25}.kpi-unit{font-size:var(--pt-unit);color:var(--gray-600);margin-inline-start:1.5mm;font-weight:500}.spark{flex:none;block-size:7mm;inline-size:22mm}.spark-line{fill:none;stroke:var(--ink);stroke-width:1.4px;stroke-linejoin:round;stroke-linecap:round}.kpi-delta{font-size:var(--pt-label);color:var(--gray-600);align-items:center;gap:2mm;display:flex}.chip{background:var(--canvas);color:var(--ink);white-space:nowrap;border-radius:99px;align-items:center;gap:1mm;padding:0 1.8mm;font-weight:600;display:inline-flex}.chip.down{color:var(--neg)}.arrow{fill:currentColor;block-size:1.6mm;inline-size:2mm}.charts{gap:var(--gutter);flex:1;grid-template-columns:7fr 5fr;min-block-size:0;display:grid}.side{gap:var(--gutter);grid-template-rows:1fr 1fr;min-block-size:0;display:grid}.charts .card{flex-direction:column;gap:2mm;display:flex}.card-title{font-size:var(--pt-body);flex:none;font-weight:600;line-height:1.4}.main .card-title{font-size:var(--pt-chart-title)}.card-note{font-size:var(--pt-label);color:var(--gray-600);margin-inline-start:2.5mm;font-weight:400}.chart{direction:ltr;flex:1;min-block-size:0;inline-size:100%}svg text{font-family:var(--font);font-variant-numeric:tabular-nums}.t-s{font-size:var(--chart-label)}.t-m{font-size:var(--chart-body)}.w5{font-weight:500}.w6{font-weight:600}.f-ink{fill:var(--ink)}.f-g6{fill:var(--gray-600)}.f-g5{fill:var(--gray-500)}.f-g3{fill:var(--gray-300)}.f-line{fill:var(--line)}.f-canvas{fill:var(--canvas)}.f-copper{fill:var(--copper)}.f-white{fill:var(--white)}.f-copper-text{fill:var(--copper-text)}.f-h1{fill:var(--heat-1)}.f-h2{fill:var(--heat-2)}.f-h3{fill:var(--heat-3)}.f-h4{fill:var(--heat-4)}.f-h5{fill:var(--heat-5)}.f-w1{fill:var(--warm-1)}.f-w2{fill:var(--warm-2)}.f-w3{fill:var(--warm-3)}.f-w4{fill:var(--warm-4)}.f-w5{fill:var(--warm-5)}.s-line{stroke:var(--line);stroke-width:1px}.s-axis{stroke:var(--gray-500);stroke-width:1px}.s-dash{stroke:var(--gray-600);stroke-width:1px;stroke-dasharray:3 3}.w-ink,.w-copper,.w-faded{stroke-width:2px;stroke-linecap:round}.w-ink{stroke:var(--ink)}.w-copper{stroke:var(--copper)}.w-faded{stroke:var(--gray-300)}.f-tint{fill:var(--copper-tint)}.s-band{stroke:var(--gray-300);stroke-width:.6px}.dashed{stroke-dasharray:5 4}.thin{stroke-width:1.6px}.frame-copper{fill:none;stroke:var(--copper);stroke-width:2px}.frame-ink{fill:none;stroke:var(--ink);stroke-width:2.4px}.l-copper,.l-gray,.l-ink{fill:none;stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.l-copper{stroke:var(--copper);stroke-width:2.4px}.l-gray{stroke:var(--gray-500)}.l-ink{stroke:var(--ink)}.cols{gap:var(--gutter);flex:1;grid-template-columns:4fr 3fr 5fr;min-block-size:0;display:grid}.col{flex-direction:column;gap:3.5mm;min-block-size:0;min-inline-size:0;display:flex}h4{font-size:var(--pt-label);color:var(--gray-600);margin-block-end:1.2mm;font-weight:600}.col-title{margin-block-end:-2.5mm}.question{font-size:var(--pt-title);font-weight:600;line-height:1.5}.blk ul,.blk ol{padding-inline-start:4.5mm}.blk li{margin-block-end:.8mm}.blk li::marker{color:var(--gray-500);font-size:var(--pt-label)}.small{font-size:var(--pt-label);color:var(--gray-600);line-height:1.55}.rules{border-collapse:collapse;inline-size:100%;margin-block-end:1.5mm}.rules th,.rules td{text-align:start;border-block-end:1px solid var(--line);font-size:var(--pt-label);padding:.9mm 0}.rules th{inline-size:42%;font-weight:600}.rules td{color:var(--gray-600)}.finding{flex-direction:column;flex:1;justify-content:center;gap:1mm;display:flex}.finding-head{align-items:center;gap:2mm;display:flex}.finding-n{background:var(--ink);block-size:5mm;inline-size:5mm;color:var(--white);font-size:var(--pt-label);border-radius:50%;flex:none;place-items:center;font-weight:600;display:grid}.finding-title{font-weight:600;line-height:1.4}.finding-num{font-size:var(--pt-kpi);flex-wrap:wrap;align-items:baseline;font-weight:600;line-height:1.3;display:flex}.finding-cap{font-size:var(--pt-label);color:var(--gray-600);white-space:nowrap;margin-inline-start:2mm;font-weight:400;line-height:1.5}.evidence{flex-direction:column;flex:none;padding-block:3.5mm;display:flex}.code{font-family:var(--mono);font-size:var(--pt-min);text-align:left;white-space:pre;border-block-start:1px solid var(--line);direction:ltr;flex:none;margin-block-start:1.5mm;padding-block-start:1.5mm;line-height:1.4;overflow:hidden}.formulas{border-collapse:collapse;border-block-start:1px solid var(--line);inline-size:100%;margin-block-start:1.5mm}.formulas th,.formulas td{border-block-end:1px solid var(--line);text-align:start;font-size:var(--pt-label);padding:1.6mm 0}.formulas th{font-weight:600}.formulas .cell,.formulas .formula{font-family:var(--mono);font-size:var(--pt-min);direction:ltr;unicode-bidi:isolate}.formulas .cell{color:var(--gray-600)}.formulas .result{text-align:end;white-space:nowrap;font-weight:600}.results{border-collapse:collapse;inline-size:100%;margin-block-start:3mm}.results th,.results td{border-block-end:1px solid var(--line);text-align:start;font-size:var(--pt-label);padding:.8mm 0}.results th{color:var(--gray-600);font-weight:600}.results tr.hit td{font-weight:600}.results td:first-child{inline-size:34%}.kpi-sub{color:var(--ink);font-weight:600}.reco{border:1.5pt solid var(--copper);border-radius:var(--radius);background:var(--card);padding:3.5mm 4mm}.reco h4{color:var(--copper-text)}.reco-text{margin-block-end:1.5mm;font-weight:500}.cover{background:var(--ink);color:var(--white);display:block;position:relative}.cover-art{inline-size:158mm;position:absolute;inset-block-end:16mm;inset-inline-end:6mm}.iso{block-size:auto;inline-size:100%;display:block}.iso-back{fill:var(--ink)}.hero .iso-back{fill:var(--ink-deep)}.iso-top{fill:var(--gray-500);fill-opacity:.62}.iso-l{fill:var(--gray-500);fill-opacity:.38}.iso-r{fill:var(--gray-500);fill-opacity:.22}.iso-top.hit{fill:var(--copper);fill-opacity:1}.iso-l.hit{fill:var(--copper);fill-opacity:.72}.iso-r.hit{fill:var(--copper);fill-opacity:.48}.cover-text{inline-size:125mm;position:absolute;inset-block-start:40mm;inset-inline-start:var(--page-margin)}.cover-name{font-size:var(--pt-cover-name);font-weight:600;line-height:1.3}.cover-title{font-size:var(--pt-cover-sub);color:var(--gray-300);margin-block-start:1mm}.cover .thread,.hero .thread{margin-block:6mm}.cover-tagline{font-size:var(--pt-cover-sub);font-weight:500}.cover-link{align-items:center;gap:5mm;margin-block-start:14mm;display:flex}.cover-link .qr{background:var(--white);border-radius:var(--radius-sm);block-size:24mm;inline-size:24mm;padding:2mm}.url{font-family:var(--mono);direction:ltr;unicode-bidi:isolate;text-decoration:none}.cover-link .url{font-size:var(--pt-title);color:var(--white);border-block-end:1px solid var(--copper);padding-block-end:.5mm}.cover-foot{font-size:var(--pt-body);color:var(--gray-300);position:absolute;inset-block-end:var(--page-margin);inset-inline-start:var(--page-margin)}.reach{flex-direction:row;gap:0;padding:0}.reach-dark{background:var(--ink);color:var(--white);padding:40mm var(--page-margin) var(--page-margin);flex-direction:column;flex:0 0 44%;display:flex}.reach-dark .thread{margin-block:6mm 12mm}.reach-list{flex-direction:column;margin:0;display:flex}.reach-list dt{font-size:var(--pt-lead);color:var(--gray-500)}.reach-list dd{font-size:var(--pt-cover-sub);margin:0 0 8mm;font-weight:600;line-height:1.5}.plain-ltr{white-space:nowrap;color:inherit;font-variant-numeric:tabular-nums;direction:ltr;unicode-bidi:isolate;text-decoration:none;display:inline-block}.reach-city{font-size:var(--pt-lead);color:var(--gray-500);margin-block-start:auto}.reach-light{padding:var(--page-margin) 22mm;flex-direction:column;flex:1;justify-content:center;gap:7mm;display:flex}.reach-cv-title{font-size:var(--pt-cover-sub);color:var(--gray-600);font-weight:500}.cv-cards{gap:12mm;display:flex}.cv-card{color:var(--ink);flex-direction:column;gap:4mm;inline-size:50mm;text-decoration:none;display:flex}.cv-thumb{block-size:auto;inline-size:100%;display:block}.cv-paper{fill:var(--card);stroke:var(--line);stroke-width:1px}.cv-label{font-size:var(--pt-cover-sub);justify-content:space-between;align-items:center;font-weight:600;display:flex}.cv-label.ltr{direction:ltr}.open-arrow{fill:none;block-size:3.6mm;inline-size:3.6mm;stroke:var(--copper-text);stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round}.about .sh-title,.closing .sh-title{font-size:var(--pt-headline)}.bio{font-size:var(--pt-lead);font-weight:500;line-height:1.75}.tools{flex-wrap:wrap;gap:2mm;display:flex}.steps{flex-direction:column;gap:4.5mm;padding:0;list-style:none;display:flex}.steps li{align-items:flex-start;gap:3mm;display:flex}.steps strong{font-weight:600}.steps p{color:var(--gray-600);line-height:1.55}.step-n{background:var(--ink);block-size:6mm;inline-size:6mm;color:var(--white);font-size:var(--pt-label);border-radius:50%;flex:none;place-items:center;margin-block-start:.5mm;font-weight:600;display:grid}.index-row{flex:1;align-items:center;gap:3.5mm;padding-block:2.5mm;display:flex}.index-n{font-size:var(--pt-title);color:var(--gray-300);flex:none;font-weight:600}.index-body{flex:1;min-inline-size:0}.index-q{font-weight:600;line-height:1.45}.hl{text-align:end;flex-direction:column;flex:none;align-items:flex-end;inline-size:34mm;display:flex}.hl-num{font-size:var(--pt-title);color:var(--copper-text);white-space:nowrap;font-weight:600}.hl-num .kpi-unit{color:var(--copper-text);font-size:var(--pt-body)}.hl-cap{font-size:var(--pt-label);color:var(--gray-600);line-height:1.4}.closing-body{flex-direction:column;flex:1;justify-content:space-between;gap:5mm;min-block-size:0;display:flex}.skills{border-collapse:collapse;inline-size:100%}.skills th,.skills td{text-align:start;border-block-end:1px solid var(--line);padding:2.6mm 2mm}.skills tr:last-child td{border-block-end:0}.skills th{font-size:var(--pt-label);color:var(--gray-600);font-weight:600}.closing .skills td{padding-block:2.3mm}.closing .card{flex:none;padding-block:2.5mm}.skills-n{color:var(--gray-300);font-weight:600;font-size:var(--pt-title);inline-size:12mm}.skills-skill{font-weight:600}.skills .badge{margin-inline-end:1.5mm}.skills-result strong{color:var(--copper-text);white-space:nowrap;font-weight:600}.closing-end{text-align:center;flex-direction:column;align-items:center;display:flex}.closing-end .thread{margin-block:3mm 6mm}.closing-line{font-size:var(--pt-cover-sub);font-weight:600;line-height:1.6}.closing-contact-title{font-size:var(--pt-headline);margin-block-end:4mm;font-weight:600;line-height:1.3}.contact{align-items:center;gap:5mm;display:flex}.contact .qr{block-size:22mm;inline-size:22mm}.contact dl{grid-template-columns:auto 1fr;align-items:baseline;gap:1.5mm 4mm;margin:0;display:grid}.contact dt{font-size:var(--pt-label);color:var(--gray-600)}.contact dd{margin:0}.contact .url{font-size:var(--pt-body);color:var(--ink)}.home{flex-direction:column;display:flex}.hero{background:var(--ink-deep);color:var(--white);grid-template-columns:1fr;gap:24px;padding:40px 20px 32px;display:grid}.hero-art{order:2;inline-size:100%;max-inline-size:520px;margin-inline:auto}.hero-text{max-inline-size:560px}.hero .cover-name{font-size:clamp(30px,7vw,52px)}.hero-bio{color:var(--gray-300);margin-block-start:16px;font-size:16px;line-height:1.8}.hero-actions{flex-wrap:wrap;gap:12px;margin-block-start:24px;display:flex}.btn{border:1px solid var(--gray-500);min-block-size:44px;color:var(--white);border-radius:99px;align-items:center;padding:0 20px;font-size:15px;font-weight:500;text-decoration:none;display:inline-flex}.btn.primary{background:var(--copper);border-color:var(--copper)}.btn:focus-visible{outline:2px solid var(--copper);outline-offset:3px}.case-card:focus-visible{outline:2px solid var(--copper);outline-offset:3px}.band{inline-size:100%;max-inline-size:1120px;margin-inline:auto;padding:36px 20px}.band h2{margin-block-end:20px;font-size:22px;font-weight:600}.home{font-size:15px}.home .steps{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:20px;display:grid}.home .small,.home .hl-cap,.home .skills th{font-size:13px}.case-cards{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;display:grid}.case-card{color:var(--ink);transition:transform var(--dur), box-shadow var(--dur);flex-direction:column;gap:8px;padding:20px;text-decoration:none;display:flex}.case-card:hover{transform:translateY(-2px)}.case-card-top{justify-content:space-between;align-items:center;display:flex}.case-card .sh-num{font-size:22px}.case-card .spark{block-size:26px;inline-size:84px}.case-card .hl{text-align:start;align-items:flex-start;inline-size:auto;margin-block-start:6px}.case-card .hl-num{font-size:26px}.case-card-go{color:var(--copper-text);margin-block-start:auto;padding-block-start:10px;font-size:14px;font-weight:600}.table-wrap{padding:8px 12px;overflow-x:auto}.home .skills th,.home .skills td{padding:10px 6px}.home .skills-n{inline-size:32px;font-size:16px}.home .closing-line{margin-block-end:16px;font-size:18px}.home .reach-cv-title{margin-block:28px 14px;font-size:16px}.home .cv-cards{gap:20px}.home .cv-card{gap:10px;inline-size:min(150px,42vw)}.home .cv-label{font-size:16px}.home .open-arrow{block-size:12px;inline-size:12px}.cv-card:focus-visible{outline:2px solid var(--copper);outline-offset:4px;border-radius:var(--radius)}.home .contact .url{font-size:15px}.site-foot{text-align:center;color:var(--gray-600);border-block-start:1px solid var(--line);padding:24px 20px 40px;font-size:13px}@media (width>=900px){.hero{grid-template-columns:1fr 1fr;align-items:center;min-block-size:640px;padding:72px max(40px,50vw - 560px)}.hero-art{order:0}}@media (prefers-reduced-motion:reduce){.case-card{transition:none}.case-card:hover{transform:none}}.screen{--pt-body:15px;--pt-label:13px;--pt-min:12px;--pt-title:18px;--pt-lead:16px;--pt-headline:clamp(22px, 5.4vw, 30px);--pt-kpi:clamp(22px, 5.6vw, 28px);--pt-chart-title:16px;--pt-unit:14px;--pt-sheet-num:26px;--gutter:14px;font-size:var(--pt-body)}.boot{text-align:center;background:var(--ink-deep);min-block-size:100vh;color:var(--white);place-content:center;gap:6px;display:grid}.boot-name{font-size:28px;font-weight:600}.boot-title{color:var(--gray-300)}#main>.boot:not(:only-child){display:none}.case-page{min-block-size:100vh}.topbar{z-index:5;background:var(--canvas);border-block-end:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex;position:sticky;inset-block-start:0}.brand{color:var(--ink);white-space:nowrap;font-weight:600;text-decoration:none}.dots{gap:4px;display:flex}.dot{place-items:center;block-size:44px;inline-size:24px;display:grid}.dot:before{content:"";background:var(--gray-300);border-radius:50%;block-size:9px;inline-size:9px}.dot.on:before{background:var(--copper)}.btn.small{min-block-size:36px;color:var(--ink);border-color:var(--gray-300);white-space:nowrap;padding:0 14px;font-size:13px}.progress{z-index:6;background:var(--copper);transform-origin:100%;block-size:3px;position:fixed;inset-block-start:0;inset-inline:0;transform:scaleX(0)}@supports (animation-timeline:scroll()){.progress{animation:linear both grow;animation-timeline:scroll(root)}@keyframes grow{to{transform:scaleX(1)}}}.screen .sheet{gap:16px;block-size:auto;inline-size:100%;max-inline-size:1160px;margin-inline:auto;padding:20px 12px 8px;overflow:visible}.screen .sh-head{flex-wrap:wrap;gap:10px;block-size:auto}.screen .headline{max-inline-size:none}.screen .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.screen .kpi{gap:4px;min-inline-size:0;padding:12px}.screen .kpi-top{align-items:flex-start}.screen .kpi-mid,.screen .kpi-delta{flex-wrap:wrap}.screen .spark{block-size:26px;inline-size:84px}.screen .abbr,.screen .badge{padding-inline:8px;font-size:12px}.screen .charts,.screen .cols{grid-template-columns:minmax(0,1fr)}.screen .side{grid-template-rows:auto}.screen .card{padding:14px 12px}.screen .chart{flex:none;block-size:auto;display:block}.screen .only-wide{display:none}.screen .card-note{margin-block-start:2px;margin-inline-start:0;display:block}.screen .col{gap:18px}.screen .col-title{margin-block-end:-8px}.screen .finding{flex:none;gap:6px}.screen .code{padding-block-end:6px;font-size:11.5px;overflow-x:auto}.screen .results th,.screen .results td,.screen .formulas th,.screen .formulas td,.screen .rules th,.screen .rules td{padding-block:7px}.screen .reco{padding:16px}.screen .thread{block-size:3px;inline-size:64px;margin-block-start:10px}.pager{grid-template-columns:1fr 1fr;gap:12px;max-inline-size:1160px;margin-inline:auto;padding:8px 16px 28px;display:grid}.pager-link{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);color:var(--ink);flex-direction:column;gap:2px;min-block-size:44px;padding:14px 16px;text-decoration:none;display:flex}.pager-link.end{text-align:end;grid-column:2}.pager-link:focus-visible{outline:2px solid var(--copper);outline-offset:2px}.dot:focus-visible{outline:2px solid var(--copper);outline-offset:2px}.brand:focus-visible{outline:2px solid var(--copper);outline-offset:2px}@media (width>=640px){.screen .only-wide{display:block}.screen .only-narrow{display:none}.screen .sheet{padding-inline:24px}.screen .card{padding:16px}}@media (width>=960px){.screen .kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.screen .charts{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}.screen .cols{grid-template-columns:minmax(0,4fr) minmax(0,3fr) minmax(0,5fr)}.screen .card-note{margin-inline-start:10px;display:inline}}.kit{flex-direction:column;gap:6mm;max-inline-size:320mm;margin-inline:auto;padding:10mm;display:flex}.swatches{grid-template-columns:repeat(6,1fr);gap:3mm;display:grid}.swatch{font-size:var(--pt-label);flex-direction:column;gap:1mm;display:flex}.swatch span{border-radius:var(--radius-sm);border:1px solid var(--line);block-size:12mm}.swatch code{font-family:var(--mono);text-align:start;direction:ltr}.kit-row{align-items:center;gap:4mm;display:flex}.kit-sheet{border:1px solid var(--line);inline-size:fit-content}