/*
  Ash Club | Interactive CV | Stage 4 visual system RC
  Intent: a quiet, cohesive editorial interface; not a graphic portfolio skin.
  Source content and its authentic visual material remain unmodified.
  Three chromatic brand values only: slate #3E484D, aubergine-gray #3A3237,
  gold #FFC46B. All supporting surface values are neutral grayscale.
*/
:root{
  --d-slate:#3E484D;
  --d-plum:#3A3237;
  --d-gold:#FFC46B;
  --d-bg:#F7F7F7;
  --d-surface:#FFFFFF;
  --d-lift:#F0F0F0;
  --d-ink:#252525;
  --d-muted:#525252;
  --d-subtle:#686868;
  --d-edge:#D9D9D9;
  --d-emphasis:#3E484D;
  --d-emphasis-alt:#3A3237;
  --d-on-dark:#FFFFFF;
  --d-on-dark-muted:#E2E2E2;
  --d-head:#3A3237;
  --d-ring:#3E484D;
  --d-radius:13px;
  --d-radius-small:8px;
  --d-max:1170px;
  --d-serif:Georgia,'Times New Roman',serif;
  --d-sans:Inter,'Helvetica Neue',Arial,sans-serif;
  --av-bg:var(--d-bg);
  --av-paper:var(--d-surface);
  --av-panel:var(--d-lift);
  --av-ink:var(--d-ink);
  --av-sub:var(--d-muted);
  --av-border:var(--d-edge);
  color-scheme:light;
}
html[data-theme="dark"]{
  --d-bg:#191919;
  --d-surface:#262626;
  --d-lift:#303030;
  --d-ink:#F2F2F2;
  --d-muted:#D0D0D0;
  --d-subtle:#BEBEBE;
  --d-edge:#505050;
  --d-emphasis:#3A3237;
  --d-emphasis-alt:#3E484D;
  --d-head:#3E484D;
  --d-ring:#FFC46B;
  color-scheme:dark;
}
html{scroll-padding-top:100px;font-family:var(--d-sans)}
body{background:var(--d-bg)!important;color:var(--d-ink)!important;font-family:var(--d-sans);font-size:15px;line-height:1.65;letter-spacing:0}
:where(p,li,dd,dt){text-wrap:pretty}
:where(h1,h2,h3,h4){text-wrap:balance}
::selection{background:var(--d-gold);color:#242424}
/* Semantic surfaces: only interface text gets recolored, never original art. */
main,.main,.app{color:var(--d-ink)}
main p,main li,main dd,main dt,.app p,.app li{color:var(--d-muted)}
main :is(h1,h2,h3,h4),.app :is(h1,h2,h3,h4){color:var(--d-ink)}
/* Header: one consistently proportioned identity bar throughout the experience. */
.site-header,.top{background:var(--d-head)!important;border-bottom:1px solid #797979!important;box-shadow:none!important}
.site-header,.top-in{min-height:69px!important;gap:12px!important}
.site-header .mark,.top .wordmark{font-size:11px!important;font-weight:800;letter-spacing:.09em!important;text-decoration:none}
.site-header .mark span,.top .wordmark span{color:var(--d-gold)!important}
.site-header nav a,.toplinks a{font-size:12px!important;font-weight:600;letter-spacing:0;text-decoration:none}
.site-header nav a:not(.navcv),.toplinks a:not(.cta){color:#F2F2F2!important}
.site-header nav a:hover:not(.navcv),.toplinks a:hover:not(.cta){color:var(--d-gold)!important}
.site-header nav .navcv,.toplinks .cta{background:var(--d-gold)!important;color:#292929!important;border:1px solid var(--d-gold)!important;border-radius:8px!important;box-shadow:none!important;padding:10px 15px!important}
.site-header nav .navcv:hover,.toplinks .cta:hover{background:#FFFFFF!important;color:#292929!important;border-color:#FFFFFF!important}
.lang-pair{border-color:#989898!important;border-radius:100px!important;padding:3px!important}
.lang-pair a{border-radius:100px!important;font-size:11px!important;min-height:33px!important;min-width:33px!important}
.lang-pair a[aria-current="page"]{background:var(--d-gold)!important;color:#242424!important}
.icon-control{width:38px!important;height:38px!important;border-color:#939393!important;border-radius:100px!important;box-shadow:none!important}
.icon-control[aria-pressed="true"]{background:var(--d-gold)!important;color:#242424!important;border-color:var(--d-gold)!important}
.profile-access{min-width:83px!important;width:auto!important;padding:0 11px!important;gap:7px!important}
.profile-access-label{font-size:11px!important}
/* No category-colored text: the manuscript has one reading hierarchy. */
.hero,.selected,.teaching-feature,.approach-section,.meta-case,.sources{background:var(--d-bg)!important;color:var(--d-ink)!important}
.hero{max-width:var(--d-max)!important;gap:clamp(40px,6vw,85px)!important;padding-top:76px!important;padding-bottom:72px!important;align-items:center}
.hero-text{min-width:0}
.hero h1{font-size:clamp(43px,4.55vw,67px)!important;line-height:1.055!important;letter-spacing:-.052em!important;font-weight:700!important;max-width:770px!important;margin:24px 0 27px!important}
.hero h1 em,.sect-intro h2 em,.meta-case h2 em,.hero .serif{color:var(--d-ink)!important;text-decoration:none!important;font-family:var(--d-serif)!important;font-weight:400!important;font-style:italic!important}
.hero .overline,.hero .over,.sect-intro .overline,.meta-case .overline,.selected .overline,.teaching-feature .overline,.eyebrow,.project-meta,.sectionid,.casehd .over,.source-tag,.provenance-label{
 color:var(--d-slate)!important;letter-spacing:.10em!important;font-weight:750!important}
html[data-theme="dark"] .hero .overline,html[data-theme="dark"] .sect-intro .overline,html[data-theme="dark"] .meta-case .overline,html[data-theme="dark"] .project-meta,html[data-theme="dark"] .eyebrow,html[data-theme="dark"] .source-tag{color:var(--d-gold)!important}
.hero .lead{font-size:16px!important;line-height:1.72!important;color:var(--d-muted)!important;max-width:650px!important;margin-bottom:20px!important}
.hero .credentials{font-size:12px!important;line-height:1.65!important;color:var(--d-muted)!important;border-left:2px solid var(--d-edge)!important}
.hero .actions{gap:11px!important;margin:25px 0 4px!important}
.hero-visual{margin:0!important;border:1px solid var(--d-edge)!important;border-radius:var(--d-radius)!important;box-shadow:none!important;background:var(--d-surface)!important;overflow:hidden!important;padding:13px!important}
.hero-visual img{border-radius:6px!important;background:var(--d-surface)!important;object-fit:contain!important}
.hero-visual figcaption{font-size:11px!important;color:var(--d-muted)!important;padding:10px 8px 2px!important}
.actions a,.caselinks .primary,.meta-link,.quicklink,.evidence-actions a,.source-list a,.download-cv{border-radius:var(--d-radius-small)!important;box-shadow:none!important}
.actions .primary,.toplinks .cta,.site-header .navcv,.evidence-actions .view-page,.cv-toolbar .download-cv{
 background:var(--d-plum)!important;color:#FFFFFF!important;border:1px solid var(--d-plum)!important;
}
html[data-theme="dark"] .actions .primary,html[data-theme="dark"] .evidence-actions .view-page{background:var(--d-slate)!important;border-color:var(--d-slate)!important;color:#FFFFFF!important}
.actions .secondary{background:transparent!important;border:1px solid var(--d-edge)!important;color:var(--d-ink)!important}
.actions .primary:hover,.evidence-actions .view-page:hover{background:var(--d-slate)!important;border-color:var(--d-slate)!important;color:#FFFFFF!important}
.actions .secondary:hover{background:var(--d-lift)!important;color:var(--d-ink)!important}
.how-it-works-link{font-size:12px!important;text-decoration:none!important;border-bottom:1px solid var(--d-edge)!important;color:var(--d-muted)!important;padding:9px 0 4px!important;font-weight:650!important}
/* Reading spine: section titles and spatial rhythm before decorative cards. */
main{max-width:calc(var(--d-max) + 60px)!important}
main>section:not(.hero):not(.orientation){padding-top:65px!important;padding-bottom:68px!important}
.sect-intro h2,.teaching-feature .sect-intro h2,.meta-case h2,.sources h2{font-size:clamp(29px,3.2vw,44px)!important;line-height:1.13!important;letter-spacing:-.038em!important;max-width:900px}
.sect-intro>p:not(.overline),.sect-intro p:not(.overline){max-width:790px;font-size:15px!important;line-height:1.7!important;color:var(--d-muted)!important}
.orientation{background:transparent!important;border:none!important;gap:0!important;border-top:1px solid var(--d-edge)!important;border-bottom:1px solid var(--d-edge)!important;max-width:var(--d-max)!important;margin-bottom:15px!important}
.orientation>div{background:transparent!important;border:none!important;border-right:1px solid var(--d-edge)!important;border-radius:0!important;box-shadow:none!important;padding:19px 22px!important;color:var(--d-ink)!important}
.orientation>div:first-child{padding-left:0!important}
.orientation>div:last-child{border-right:0!important;padding-right:0!important}
.orientation>div:nth-child(2),.orientation>div:nth-child(3){background:transparent!important;color:var(--d-ink)!important;border-top:0!important}
.orientation>div :is(b,p,a),.orientation>div:nth-child(2) :is(b,p,a),.orientation>div:nth-child(3) :is(b,p,a){color:var(--d-muted)!important}
.orientation>div b,.orientation>div strong,.orientation>div:nth-child(2) b{color:var(--d-ink)!important;font-size:13px!important}
.orientation>div p{font-size:12px!important;line-height:1.55!important}
.orientation .evidence-proof{font-size:12px!important;border-bottom:1px solid var(--d-edge)!important}
/* Case cards are neutral across projects, no alternation of plum/slate panels. */
.feature,.lead-case,.mini-case,.learning-showcase,.work-tile,.source-card,.teaching-gallery a,.implementation-gallery figure,.source-list>div,.block,.figure,.teaching-asset,.raw-gallery figure{
 background:var(--d-surface)!important;color:var(--d-ink)!important;
 border:1px solid var(--d-edge)!important;border-radius:var(--d-radius)!important;
 box-shadow:none!important;overflow:hidden;
}
.lead-case,.feature{border-top:1px solid var(--d-edge)!important}
.feature-grid .mini-case,.feature-grid .mini-case:nth-child(n){border-top:1px solid var(--d-edge)!important;box-shadow:none!important}
.feature-grid .mini-body,.feature-grid .mini-case:nth-child(n) .mini-body{background:var(--d-surface)!important;color:var(--d-ink)!important;display:flex;flex-direction:column;flex:1}
.feature-grid .mini-case:nth-child(n) .mini-body :is(p,h3,span,strong,a),.feature-grid .mini-body :is(p,h3,span,strong,a){color:var(--d-ink)!important}
.feature-grid .mini-case:nth-child(n) .mini-body p:not(.project-meta),.mini-body p:not(.project-meta){color:var(--d-muted)!important}
.feature-grid .mini-case:nth-child(n) .mini-body .project-meta{color:var(--d-slate)!important}
html[data-theme="dark"] .feature-grid .mini-case:nth-child(n) .mini-body .project-meta{color:var(--d-gold)!important}
.feature-grid .mini-case:nth-child(n) .mini-body .deliverable,.mini-body .deliverable,.deliverable{background:var(--d-lift)!important;color:var(--d-muted)!important;border:none!important;border-radius:8px!important;padding:12px 14px!important}
.feature-grid .mini-case .caselinks{margin-top:auto!important;padding-top:16px!important}
.mini-case{display:flex;flex-direction:column}
.mini-image,.feature-media,.teaching-main-img{background:var(--d-lift)!important;border-radius:0!important}
.mini-image img{object-fit:contain!important;padding:15px!important;background:var(--d-lift)!important}
.feature-media img{object-fit:contain!important;background:var(--d-lift)!important}
.feature-copy,.mini-body{padding:clamp(20px,3vw,32px)!important}
.mini-body h3{font-size:clamp(22px,2.5vw,29px)!important;line-height:1.14!important;letter-spacing:-.03em!important}
.mini-body p:not(.project-meta),.feature-copy p:not(.project-meta){font-size:13.5px!important;line-height:1.7!important}
.mini-body .project-sub{font-size:14px!important;color:var(--d-muted)!important}
.caselinks a,.textlink,.mini-body a{color:var(--d-ink)!important;border-bottom:1px solid var(--d-edge)!important;text-decoration:none!important;font-weight:700!important}
.caselinks a:hover,.textlink:hover{border-bottom-color:var(--d-slate)!important}
.feature-grid{gap:18px!important}
.more-work{background:transparent!important;color:var(--d-ink)!important;border:0!important;border-top:1px solid var(--d-edge)!important;border-radius:0!important;margin-top:36px!important;padding-left:0!important;box-shadow:none!important}
.more-work .more-images a{background:var(--d-surface)!important;border:1px solid var(--d-edge)!important;border-radius:10px!important;overflow:hidden!important}
/* Teaching chapter: original learning artefacts are the focus. */
.teaching-feature{border-top:1px solid var(--d-edge)!important}
.learning-showcase{padding:0!important;gap:0!important}
.teaching-main-img{border-right:1px solid var(--d-edge)!important}
.teaching-main-img img{object-fit:contain!important}
.teaching-copy{padding:clamp(22px,3.2vw,38px)!important}
.teaching-gallery{gap:12px!important}
.teaching-gallery img{background:var(--d-lift)!important;object-fit:contain!important}
.teaching-gallery span{font-size:12px!important;font-weight:600!important;color:var(--d-ink)!important}
/* Professional history and the interface case: neutral editorial surfaces. */
.approach-section,.meta-case{border-top:1px solid var(--d-edge)!important;border-bottom:0!important}
.approach-layout figure{border:1px solid var(--d-edge)!important;border-radius:10px!important;background:var(--d-surface)!important}
.meta-case{padding-top:66px!important}
.meta-brief>div,.meta-brief>div:nth-child(n),.process-step,.interaction-system>div,.interaction-states>div,.ui-state,.ui-layout,.ui-layout div:not(.ui-arrow){background:var(--d-surface)!important;color:var(--d-ink)!important;border:1px solid var(--d-edge)!important;box-shadow:none!important;border-radius:10px!important}
.meta-brief>div{border-top:2px solid var(--d-edge)!important;padding:20px!important}
.meta-brief>div:nth-child(2),.meta-brief>div:nth-child(4){border-top:2px solid var(--d-slate)!important}
.meta-brief :is(b,p),.meta-brief>div:nth-child(n) :is(b,p){color:var(--d-ink)!important}
.meta-brief p{font-size:12.5px!important;line-height:1.65!important;color:var(--d-muted)!important}
.interaction-system{background:transparent!important;border:0!important;padding:0!important;gap:12px!important}
.interaction-system>div{padding:20px!important}
.interaction-system>div:nth-child(3){background:var(--d-surface)!important}
.interaction-system :is(small,strong,span),.interaction-system>div:nth-child(3) :is(small,strong,span){color:var(--d-ink)!important}
.interaction-system span{color:var(--d-muted)!important}
.interaction-system>b{color:var(--d-slate)!important}
.ui-state-top{background:var(--d-head)!important;color:#FFFFFF!important;border-radius:8px 8px 0 0!important}
.ui-layout{background:var(--d-lift)!important;border-radius:0 0 8px 8px!important}
.ui-layout .ui-big,.ui-layout div.ui-big,html[data-theme="dark"] .ui-layout div.ui-big{background:var(--d-slate)!important;color:#FFFFFF!important}
.ui-layout div:not(.ui-arrow):not(.ui-big){color:var(--d-ink)!important;background:var(--d-surface)!important}
.ui-layout .ui-right{border:1px solid var(--d-slate)!important}
.case-proof-note,.meta-accuracy,.case-microquote{background:transparent!important;color:var(--d-muted)!important;border-left:2px solid var(--d-edge)!important;padding-left:15px!important;border-radius:0!important}
.meta-link,a.meta-link{background:var(--d-plum)!important;border:1px solid var(--d-plum)!important;border-bottom:0!important;color:#FFFFFF!important;padding:11px 17px!important}
.implementation-gallery{gap:15px!important}
.implementation-gallery figure{padding:9px!important}
.implementation-gallery figure a{background:var(--d-lift)!important;border-radius:6px!important}
.implementation-gallery figcaption{font-size:12px!important;line-height:1.6!important;color:var(--d-muted)!important}
/* Closing editorial section is a calm transition, not a color-block interruption. */
.editorial,html[data-theme="dark"] .editorial{background:var(--d-lift)!important;color:var(--d-ink)!important;border:1px solid var(--d-edge)!important;border-radius:var(--d-radius)!important;padding:34px 40px!important}
.editorial :is(h2,h2 em,p:not(.overline),strong){color:var(--d-ink)!important}
.editorial .overline{color:var(--d-muted)!important}
.editorial .actions .secondary{color:var(--d-ink)!important;border-color:var(--d-edge)!important}
.editorial .actions .secondary:hover{background:var(--d-surface)!important}
/* Reading-room sources. This section never competes with the preceding cases. */
.sources{border-top:1px solid var(--d-edge)!important}
.sources .source-list>div,.source-list>div:nth-child(n){border:1px solid var(--d-edge)!important;background:var(--d-surface)!important;border-radius:10px!important;box-shadow:none!important}
.sources .source-list>div:nth-child(n)>span{color:var(--d-slate)!important}
.sources .source-list :is(b,small,p){color:var(--d-ink)!important}
.sources .source-list small{color:var(--d-muted)!important}
.sources a,.source-list a{color:var(--d-ink)!important;border-bottom:1px solid var(--d-edge)!important}
/* Evidence archive / same library architecture, slightly denser editorial typography. */
.top{position:sticky!important;top:0;z-index:60}
.app{max-width:1300px!important;margin-inline:auto!important}
.app .hero h1{font-size:clamp(44px,5vw,70px)!important;line-height:1.05!important}
.app .hero .serif,.case h2 .i{font-family:var(--d-serif)!important;font-style:italic!important;color:var(--d-ink)!important;text-decoration:none!important}
.app .hero p{font-size:16px!important;line-height:1.75!important;color:var(--d-muted)!important}
.side{color:var(--d-ink)!important}
.side-inner a{background:transparent!important;color:var(--d-ink)!important;border-bottom:1px solid var(--d-edge)!important;border-radius:0!important;text-decoration:none!important;min-height:37px!important;padding:8px 4px!important}
.side-inner a:hover{background:var(--d-lift)!important;color:var(--d-ink)!important}
.side-inner h2{font-size:11px!important;letter-spacing:.08em!important;color:var(--d-muted)!important}
.side-disclosure{background:transparent!important;border:0!important;border-radius:8px!important}
.side-disclosure summary{color:var(--d-ink)!important;border-radius:8px!important}
.chip{background:var(--d-surface)!important;color:var(--d-muted)!important;border:1px solid var(--d-edge)!important;border-radius:100px!important;padding:8px 13px!important;font-size:11px!important}
.work-strip{gap:12px!important}
.work-tile{background:var(--d-surface)!important;border:1px solid var(--d-edge)!important;border-radius:10px!important}
.work-tile-caption{background:var(--d-surface)!important;color:var(--d-ink)!important}
.work-tile img,.source-pict,.source-pict img,.raw-gallery figure a,.teaching-asset a{background:var(--d-lift)!important}
.work-tile img,.source-image-link img{object-fit:contain!important}
.case{border-bottom:1px solid var(--d-edge)!important;padding-top:55px!important;padding-bottom:58px!important}
.casehd,.case:nth-of-type(even) .casehd{border-left:0!important;padding-left:0!important}
.case h2{font-size:clamp(30px,3.2vw,46px)!important;letter-spacing:-.036em!important;line-height:1.1!important}
.case .deck{font-size:15px!important;line-height:1.7!important;color:var(--d-muted)!important}
.case :is(p,li,dd){color:var(--d-muted)!important}
.case :is(h3,h4,strong,dt){color:var(--d-ink)!important}
.source-card{min-width:0!important}
.source-detail{background:var(--d-surface)!important;color:var(--d-ink)!important}
.source-detail h4{font-size:16px!important;color:var(--d-ink)!important}
.source-detail p{color:var(--d-muted)!important;font-size:12.5px!important;line-height:1.65!important}
.source-detail small{color:var(--d-subtle)!important}
.source .locator,.source .trace{background:var(--d-lift)!important;color:var(--d-muted)!important;border-radius:8px!important}
.source .locator a{color:var(--d-ink)!important}
.source-loader,.case .note,.lang-note{background:var(--d-lift)!important;border:1px solid var(--d-edge)!important;border-radius:8px!important;color:var(--d-muted)!important}
.raw-gallery figure,.teaching-asset{background:var(--d-surface)!important}
.evidence-actions .view-page{background:var(--d-plum)!important;color:#FFFFFF!important;border:1px solid var(--d-plum)!important;padding:10px 13px!important}
.evidence-actions .open-original{display:none!important}
/* Pane/controls, focus and hit targets. */
.profile-dialog{border:1px solid var(--d-edge)!important;border-radius:13px!important;box-shadow:0 22px 70px #0008!important;color:var(--d-ink)!important;background:var(--d-surface)!important}
.profile-head{background:var(--d-head)!important;border-bottom:1px solid #737373!important}
.profile-monogram{background:var(--d-slate)!important;border-radius:10px!important;border:0!important;color:#FFFFFF!important}
.profile-principle{background:var(--d-lift)!important;border-left:2px solid var(--d-slate)!important}
.profile-body p{color:var(--d-muted)!important}
.profile-body p:first-child{color:var(--d-ink)!important}
.profile-close{border-radius:50%!important}
:where(a,button,summary):focus-visible{outline:3px solid var(--d-ring)!important;outline-offset:4px!important;box-shadow:0 0 0 2px var(--d-gold)!important}
:where(.site-header,.top) :is(a,button,summary):focus-visible{outline:3px solid #FFFFFF!important;box-shadow:0 0 0 2px var(--d-gold)!important}
.mobile-nav-links a,.side-disclosure a,.toplinks a,.site-header nav a{min-height:36px}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Tablet and phone: one-column work without huge blank image wells. */
@media(max-width:1100px){
 .hero h1{font-size:clamp(40px,5.2vw,60px)!important}
 .site-header,.top-in{gap:8px!important}
}
@media(max-width:850px){
 .hero{gap:25px!important;padding-top:45px!important;padding-bottom:45px!important}
 .hero h1{font-size:clamp(38px,6vw,52px)!important;margin:15px 0 21px!important}
 .orientation{grid-template-columns:1fr!important;margin:4px 0 22px!important}
 .orientation>div,.orientation>div:first-child,.orientation>div:last-child{border-right:0!important;border-bottom:1px solid var(--d-edge)!important;padding:15px 0!important}
 .orientation>div:last-child{border-bottom:0!important}
 .teaching-main-img{border-right:0!important;border-bottom:1px solid var(--d-edge)!important}
 .feature-grid .mini-image img{height:230px!important}
 .feature-copy,.mini-body{padding:22px!important}
 .app .hero h1{font-size:clamp(40px,6.4vw,52px)!important}
}
@media(max-width:750px){
 main{padding-left:17px!important;padding-right:17px!important}
 main>section:not(.hero):not(.orientation){padding-top:46px!important;padding-bottom:48px!important}
 .hero{display:grid!important;grid-template-columns:minmax(0,1fr)!important;padding-top:42px!important;gap:20px!important}
 .hero h1{font-size:clamp(35px,9vw,46px)!important;line-height:1.08!important}
 .hero .lead{font-size:14px!important}
 .hero-visual{padding:9px!important;margin:0!important;box-shadow:none!important}
 .orientation{margin-bottom:10px!important}
 .site-header{padding:9px 13px!important;min-height:79px!important}
 .site-header .mark{font-size:9.5px!important;letter-spacing:.02em!important}
 .site-header .mark span{display:none!important}
 .mobile-nav{width:100%!important}
 .mobile-nav-links a{color:#FFFFFF!important;background:transparent!important;border:1px solid #999!important;border-radius:8px!important}
 .top-in{padding:8px 13px!important}
 .top-in .wordmark{font-size:9.5px!important;letter-spacing:.02em!important}
 .top-in .wordmark span{display:none!important}
 .top-in .toplinks{gap:8px!important}
 .app{padding:0 16px!important}
 .app .hero{padding-top:39px!important}
 .side{padding-top:13px!important}
 .side-disclosure{background:var(--d-surface)!important;border:1px solid var(--d-edge)!important;border-radius:10px!important}
 .side-disclosure summary{padding:13px 17px!important;font-size:13px!important}
 .side-disclosure .side-inner a{background:transparent!important;color:var(--d-ink)!important;border:0!important;border-bottom:1px solid var(--d-edge)!important;padding:10px 7px!important;min-height:42px!important}
 .case{padding-top:42px!important;padding-bottom:45px!important}
 .case h2{font-size:clamp(27px,7.7vw,37px)!important}
 .editorial{padding:24px!important}
 .source-card,.raw-gallery figure{border-radius:10px!important}
}
@media(max-width:390px){
 .site-header .mark,.top-in .wordmark{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .lang-pair a{min-width:27px!important;min-height:29px!important}
 .icon-control{width:34px!important;height:34px!important}
 .profile-access{min-width:69px!important;padding:0 8px!important}
 .profile-access-label{font-size:10px!important}
 .site-header .ux-controls,.top-in .ux-controls{gap:4px!important}
}
/* Print is governed by the CV sheet; browser cosmetics must not break its pagination. */
@media print{
 body{background:#FFFFFF!important;color:#252525!important}
 .page{box-shadow:none!important;border-radius:0!important;background:#FFFFFF!important}
 .cv-toolbar,.site-header,.top,.mobile-nav{display:none!important}
 .page :is(h1,h2,h3,p,span,a,b,strong){text-shadow:none!important}
}
.skip-to-content{position:fixed;left:15px;top:-100px;z-index:9999;background:var(--d-head);color:#FFFFFF!important;padding:13px 18px;border:2px solid var(--d-gold);border-radius:9px;font:700 13px/1.4 var(--d-sans);text-decoration:none}
.skip-to-content:focus{top:9px}
/* Refinements found during independent prototype review. */
.toplinks .cta{background:var(--d-gold)!important;color:#252525!important;border-color:var(--d-gold)!important}
.toplinks .cta:hover{background:#FFFFFF!important;color:#252525!important}
/* Restrained use of gold on dark mode: editorial emphasis remains subordinate. */
html[data-theme="dark"] .app .hero .serif,
html[data-theme="dark"] .case h2 .i{color:var(--d-ink)!important}
/* Avoid mixing an open index with the long source column on narrow screens. */
@media(max-width:990px){
 .side-disclosure:not([open]) .side-inner{display:none!important}
 .side-disclosure[open] .side-inner{display:block!important}
 .side-disclosure .side-inner{padding:6px 16px 16px!important}
}
/* Anchor destinations should be recognizable as evidence without repainting it. */
:where(.source-card,.case,.feature,.mini-case):target{scroll-margin-top:100px;outline:2px solid var(--d-emphasis)!important;outline-offset:4px!important}
/* On-screen CV: reading size belongs to the browser, print size to A4. */
@media screen{
 .cv-screen .page{box-shadow:0 7px 30px rgba(0,0,0,.055)!important;border-top:2px solid var(--d-plum)!important;border-radius:0!important}
 .cv-screen .page h1.name{font-size:36px!important}
 .cv-screen .page .lead{font-size:13px!important;line-height:1.57!important}
 .cv-screen .page .case p{font-size:12.4px!important;line-height:1.56!important}
 .cv-screen .page .case h3{font-size:14.1px!important}
 .cv-screen .page .job p,.cv-screen .page .study p,.cv-screen .page .skills p{font-size:12.3px!important;line-height:1.55!important}
 .cv-screen .page .link-row a{font-size:11px!important}
 .cv-screen .page .contacts{font-size:11.7px!important}
 .cv-toolbar{border-bottom:0!important}
}
@media screen and (max-width:850px){
 .cv-screen .page{padding:23px 19px!important}
 .cv-screen .page .case p{font-size:13px!important}
 .cv-screen .page .job p{font-size:12.5px!important}
}
/* Evidence & teaching contrast exceptions were detected in automated inspection. */
.teaching-main-img,.teaching-main-img img{background:var(--d-lift)!important}
.teaching-main-img span{color:var(--d-ink)!important}
.approach-layout figcaption a,.approach-layout figure a:not(:has(img)){color:var(--d-ink)!important;text-decoration:underline;text-underline-offset:3px}
.endpoint{background:var(--d-lift)!important;color:var(--d-ink)!important;border:1px solid var(--d-edge)!important;border-radius:12px!important}
.endpoint h3,.endpoint :is(h2,p,span,strong){color:var(--d-ink)!important}
.endpoint .small{color:var(--d-muted)!important}
.endpoint a{background:var(--d-plum)!important;color:#FFFFFF!important;border-radius:8px!important;padding:10px 15px!important;border:0!important}
.cv-documents{width:100%;max-width:none!important;display:flow-root;margin:0!important;padding:0!important}
/* Print adjustments apply to natural content only; no overflow hidden or truncation. */
@media print{
 .cv-documents{display:block!important;max-width:none!important}
 html[lang="it"] .page:nth-of-type(2) .job{padding:7px 0!important}
 html[lang="it"] .page:nth-of-type(2) .job p{font-size:11.5px!important;line-height:1.38!important}
 html[lang="it"] .page:nth-of-type(2) .study{padding:6px 0!important}
 html[lang="it"] .page:nth-of-type(2) .study p,html[lang="it"] .page:nth-of-type(2) .skills p{font-size:11.9px!important;line-height:1.38!important}
 html[lang="it"] .page:nth-of-type(2) .heading{margin:10px 0 7px!important}
 html[lang="it"] .page:nth-of-type(2) .bottom{margin-top:6px!important}
}

/* Stage 4 functional repair: CV navigation and browser print/export. No
   changes to core identity, project cards, sources, page typography or art. */
@media screen {
  .cv-home-link{display:inline-flex;align-items:center;justify-content:center;
    flex:0 0 auto;min-height:34px;padding:7px 10px;color:#FFFFFF!important;
    border:1px solid #A2A2A2!important;border-radius:8px;text-decoration:none!important;
    font:700 11px/1.25 var(--d-sans);white-space:nowrap}
  .cv-home-link:hover{background:rgba(255,255,255,.12)!important;border-color:#FFFFFF!important}
  .cv-toolbar .cv-print-control{font-family:var(--d-sans);cursor:pointer;
    display:inline-flex;align-items:center;justify-content:center;
    white-space:nowrap;font-size:11px;line-height:1.25;min-height:36px;
    background:var(--d-gold)!important;color:#242424!important;
    border:1px solid var(--d-gold)!important;border-radius:8px!important}
  .cv-toolbar .cv-print-control:hover{background:#FFFFFF!important;border-color:#FFFFFF!important}
  .cv-screen .topline{gap:10px}
}
@media screen and (max-width:650px){
  .cv-toolbar{display:grid!important;grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:'home print' 'opts opts';gap:8px 9px!important;
    justify-content:stretch!important;align-items:center!important;padding:9px 12px!important}
  .cv-toolbar-label{display:none!important}
  .cv-toolbar .cv-home-link{grid-area:home;justify-self:start}
  .cv-toolbar .cv-print-control{grid-area:print;justify-self:end;padding:8px 11px!important;font-size:11px!important}
  .cv-toolbar .ux-controls{grid-area:opts;justify-self:center;
    max-width:100%!important;display:flex;flex-wrap:wrap;justify-content:center}
  .cv-screen .topline{display:flex;flex-direction:column;align-items:flex-start;
    justify-content:flex-start;gap:8px!important;padding-bottom:12px!important}
  .cv-screen .topline span{display:block;max-width:100%;white-space:normal;
    word-break:normal;overflow-wrap:break-word;line-height:1.45}
  .cv-screen .topline a{display:inline-flex;max-width:100%;white-space:normal;
    margin:0!important;padding:3px 0!important;min-height:28px;align-items:center}
}
@media print{.cv-toolbar,.cv-home-link,.cv-print-control{display:none!important}}

/* Evidence mobile: explicit home route was hidden with the rest of desktop nav.
   Keep the home and Linked CV routes visible, without adding new controls. */
@media screen and (max-width:730px){
  .top-in .toplinks a[href="index.html"]{display:inline-flex!important;
    align-items:center;justify-content:center;min-height:34px;
    padding:7px 10px;border:1px solid #9A9A9A!important;
    border-radius:8px!important;color:#FFFFFF!important;text-decoration:none!important}
  .top-in .toplinks a[href="index.html"]:hover{border-color:#FFFFFF!important}
}
