/* IT SPACE shared presentation for native Ollie blocks. Visual only: no layout depends on JavaScript. */
:root{--it-radius:18px;--it-line:var(--wp--preset--color--border-light,#e3e3f0);--it-ink:var(--wp--preset--color--main,#1e1e26);--it-muted:var(--wp--preset--color--secondary,#545473);--it-accent:var(--wp--preset--color--primary,#5344f4);--it-soft:var(--wp--preset--color--tertiary,#f8f7fc);--it-ease:cubic-bezier(.2,.7,.2,1)}
@media (prefers-reduced-motion:no-preference){html:has(.it-home-hero){scroll-behavior:smooth}}
[id]{scroll-margin-top:24px}

/* Shared interaction feedback for theme pages; the legacy portal keeps its own approved look.
   No transforms on generic buttons: some portal cards stretch a button link across the card. */
body:not(.portal-legacy) :where(a,button,summary,input,select,textarea):focus-visible{outline:2px solid var(--it-accent);outline-offset:3px}
body:not(.portal-legacy) .wp-block-button__link{transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}
body:not(.portal-legacy) .wp-block-button__link:hover{box-shadow:0 6px 16px -10px rgba(30,30,38,.55)}
body:not(.portal-legacy) .wp-block-button__link:active{box-shadow:none;filter:brightness(.94)}
body:not(.portal-legacy) .is-style-outline>.wp-block-button__link:hover{background:var(--it-ink);color:var(--wp--preset--color--base,#fff);border-color:var(--it-ink)}
body:not(.portal-legacy) .has-main-background-color .is-style-outline>.wp-block-button__link:hover{background:var(--wp--preset--color--base,#fff);color:var(--it-ink);border-color:var(--wp--preset--color--base,#fff)}
.site-header .wp-block-navigation-item__content{text-underline-offset:6px;text-decoration-thickness:1px}
.site-header .wp-block-navigation-item:not(.portal-account-menu)>.wp-block-navigation-item__content:hover{text-decoration:underline}

/* Section rhythm */
.it-eyebrow{margin:0 0 14px!important;color:var(--it-accent);font-size:var(--wp--preset--font-size--x-small,.95rem);font-weight:600;letter-spacing:.06em}
.it-section-head{margin-bottom:var(--wp--preset--spacing--large)!important}
.it-section-head h2{margin:0 0 14px!important;line-height:1.25}
.it-section-head p:last-child{max-width:680px;margin-top:0}

/* Hero */
.it-home-hero h1{margin:0 0 22px!important;line-height:1.15;letter-spacing:-.02em}
.it-home-lead{font-size:clamp(1.2rem,1.1rem + .6vw,1.6rem)!important;line-height:1.7;max-width:640px;margin:0!important}
.it-home-actions{margin-top:32px!important;gap:12px}
.it-home-note{margin:18px 0 0!important;font-size:var(--wp--preset--font-size--x-small,.95rem);color:var(--it-muted)}
.it-home-index{border-radius:24px;padding:clamp(24px,3vw,40px)!important}
.it-home-index-brand{gap:14px!important;margin:0 0 22px!important;padding-bottom:20px;border-bottom:1px solid var(--wp--preset--color--border-dark,#4e4e60)}
.it-home-index-brand p{margin:0!important;font-size:var(--wp--preset--font-size--x-small,.95rem);letter-spacing:.06em;opacity:.75}
.it-home-index-list{list-style:none;margin:0!important;padding:0!important;counter-reset:it-index}
.it-home-index-list li{counter-increment:it-index;margin:0!important}
.it-home-index-list a{display:flex;align-items:center;gap:16px;padding:12px 0;color:inherit!important;text-decoration:none;font-size:1.08rem;transition:gap .25s var(--it-ease)}
.it-home-index-list a::before{content:counter(it-index,decimal-leading-zero);font:500 .8rem/1 monospace;opacity:.55;min-width:1.6em}
.it-home-index-list a::after{content:"→";margin-left:auto;opacity:.45;transition:transform .25s var(--it-ease),opacity .2s}
.it-home-index-list a:hover{gap:22px}
.it-home-index-list a:hover::after{opacity:1;transform:translateX(3px)}
.it-home-index-list a:focus-visible{outline-color:var(--wp--preset--color--base,#fff)}

/* Cards: the title link's own ::after supplies the whole-card hit area (a native <a>, no overlay element). */
.it-grid{gap:20px!important}
.it-card{position:relative;isolation:isolate;display:flex;flex-direction:column;min-width:0;margin:0!important;padding:28px!important;border:1px solid var(--it-line);border-radius:var(--it-radius);background:var(--wp--preset--color--base,#fff);transition:transform .25s var(--it-ease),border-color .25s,box-shadow .25s}
.it-home-section:not(.has-background) .it-card,.it-page-cards .it-card{background:var(--it-soft)}
.it-card>*{margin-top:0!important}
.it-card-kind{align-self:flex-start;margin:0 0 16px!important;padding:3px 10px;border-radius:999px;background:var(--wp--preset--color--primary-accent,#e9e7ff);color:var(--it-accent)!important;font-size:.8rem!important;font-weight:600;line-height:1.6!important}
.it-card-title{margin:0 0 10px!important;font-size:1.35rem!important;line-height:1.4}
.it-card-title a{color:inherit;text-decoration:none}
.it-card-title a::after{content:"";position:absolute;inset:0;border-radius:inherit;z-index:1}
.it-card p{margin:0;color:var(--it-muted);line-height:1.75;font-size:var(--wp--preset--font-size--x-small,.95rem)}
.it-card .it-card-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto!important;padding-top:20px;font-size:.85rem;color:var(--it-ink);font-weight:500}
.it-card .it-card-meta::after{content:"→";color:var(--it-accent);transition:transform .25s var(--it-ease)}
/* A faint highlight follows a fine pointer (CSS variables set by portal-site-ui.js); it sits behind the text. */
.it-card::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(240px circle at var(--it-mx,50%) var(--it-my,0%),rgba(83,68,244,.07),transparent 70%)}
.it-card:hover,.it-card:focus-within{border-color:#b9b6d6;box-shadow:0 18px 36px -28px rgba(30,30,38,.45);transform:translateY(-3px)}
.it-card:hover::before{opacity:1}
.it-card:hover .it-card-meta::after,.it-card:focus-within .it-card-meta::after{transform:translateX(4px)}
.it-card:has(a:focus-visible){outline:2px solid var(--it-accent);outline-offset:3px}
.it-card .it-card-title a:focus-visible{outline:none}

/* Content preview */
.it-panel{margin:0!important;padding:28px!important;border:1px solid var(--it-line);border-radius:var(--it-radius);background:var(--wp--preset--color--base,#fff)}
.it-panel-title{margin:0 0 6px!important;font-size:.85rem;font-weight:600;letter-spacing:.06em;color:var(--it-muted)}
.it-post-list .wp-block-post-template{margin:0;padding:0}
.it-post-row{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 20px;margin:0!important;padding:16px 0;border-bottom:1px solid var(--it-line)}
.it-post-row .it-post-title{margin:0!important;font-size:1.15rem;line-height:1.5;min-width:0;flex:1 1 260px}
.it-post-row .it-post-title a{color:var(--it-ink);text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .3s var(--it-ease),color .2s}
.it-post-row .it-post-title a:hover{color:var(--it-accent);background-size:100% 1px}
.it-post-meta{gap:4px 14px!important;font-size:.85rem;color:var(--it-muted);margin:0!important}
.it-post-meta>*{margin:0!important}
.it-post-meta a{color:var(--it-muted)}
.it-post-meta a:hover{color:var(--it-ink)}
.it-more-link{margin:18px 0 0!important}
.it-more-link a{color:var(--it-ink);font-weight:500;text-underline-offset:5px}
.it-more-link a::after{content:" →"}
.it-more-link a:hover{color:var(--it-accent)}
.it-content-columns>.wp-block-column{display:flex;flex-direction:column;gap:20px}
.it-content-columns>.wp-block-column>*{margin:0!important}
.it-topic-list{list-style:none;margin:10px 0 0!important;padding:0!important}
.it-topic-list li{margin:0;padding:12px 0;border-top:1px solid var(--it-line);color:var(--it-muted);font-size:var(--wp--preset--font-size--x-small,.95rem);line-height:1.7}
.it-topic-list li:first-child{border-top:0;padding-top:4px}
.it-topic-list strong{display:block;color:var(--it-ink);font-weight:600}
.it-home-activities h2{margin:0 0 6px!important}
.it-home-activities>.wp-block-query{margin-top:20px!important}
.it-home-activities .wp-block-query .has-base-background-color{border:1px solid var(--it-line)}

/* Closing band and footer */
.it-home-closing h2{margin:0 0 10px!important}
.it-closing-lead{margin:0!important;opacity:.78;font-size:1.1rem}
.it-home-closing>.alignwide{gap:24px}
.it-site-footer{font-size:var(--wp--preset--font-size--x-small,.95rem);color:var(--it-muted)}
.it-footer-main{gap:32px 48px!important}
.it-footer-brand p{margin:14px 0 0!important}
.it-footer-brand .wp-block-site-title{color:var(--it-ink);font-weight:600}
.it-footer-links{gap:28px 56px!important}
.it-footer-heading{margin:0 0 10px!important;font-size:.85rem!important;font-weight:600;letter-spacing:.06em;color:var(--it-ink)}
.it-footer-links ul{list-style:none;margin:0!important;padding:0!important}
.it-footer-links li{margin:0;padding:4px 0}
.it-footer-links a{color:var(--it-muted);text-decoration:none;display:inline-block;padding:2px 0}
.it-footer-links a:hover{color:var(--it-ink);text-decoration:underline;text-underline-offset:4px}
.it-footer-note{margin-top:var(--wp--preset--spacing--large)!important;padding-top:18px;border-top:1px solid var(--it-line)}
.it-footer-note p{margin:0;font-size:.82rem;line-height:1.7}

/* Native blog list keeps one post per row; this only adds hover feedback. */
.portal-blog-row .wp-block-post-title a{text-decoration:none;transition:color .2s}
.portal-blog-row .wp-block-post-title a:hover{color:var(--it-accent);text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}

/* Native public pages (services, projects) share the homepage card language. */
.it-page-lead{margin-top:0!important}
.it-page-cards{margin-top:var(--wp--preset--spacing--medium)!important;margin-bottom:var(--wp--preset--spacing--large)!important}
.it-page-subhead{margin-top:var(--wp--preset--spacing--large)!important;margin-bottom:0!important;font-size:1.35rem!important}

@media (max-width:781px){
 .it-home-hero h1{font-size:clamp(2.3rem,10vw,3rem)!important}
 .it-home-index{border-radius:var(--it-radius);padding:20px!important}
 .it-home-index-brand{margin-bottom:8px!important;padding-bottom:14px}
 .it-home-index-list{display:grid;grid-template-columns:1fr 1fr;column-gap:16px}
 .it-home-index-list a{padding:10px 0;font-size:1rem;min-height:44px}
 .it-home-index-list a::after{display:none}
 .it-card,.it-panel{padding:22px!important}
 .it-footer-links{gap:24px 40px!important}
 .it-footer-links a{padding:6px 0}
 .it-home-actions .wp-block-button__link,.it-home-closing .wp-block-button__link{padding-top:.85em;padding-bottom:.85em}
}
/* Touch devices: no hover dependency; press feedback only. */
@media (hover:none){
 .it-card:hover{transform:none;box-shadow:none;border-color:var(--it-line)}
 .it-card:active{transform:scale(.985);border-color:#b9b6d6}
 .it-card::before{display:none}
 .it-card,.it-home-index-list a,.it-footer-links a{-webkit-tap-highlight-color:rgba(83,68,244,.12)}
}
@media (prefers-reduced-motion:reduce){
 .it-card,.it-card::before,.it-card-meta::after,.it-home-index-list a,.it-home-index-list a::after,.it-post-row a,.it-skill,.it-phone-copy .wp-block-button__link,body:not(.portal-legacy) .wp-block-button__link{transition:none!important}
 .it-card:hover,.it-card:focus-within,.it-card:active{transform:none!important}
 .it-home-index-list a:hover{gap:16px}
}

/* Layout corrections: the homepage hero meets the header; card grids fill the row; activities align with the section. */
body.home main.wp-block-group:has(>.entry-content .it-home-hero),body.home main.wp-block-group:has(.it-home-hero:first-child){margin-top:0!important}
.it-grid.is-layout-grid{grid-template-columns:repeat(auto-fit,minmax(min(17rem,100%),1fr))!important}
.it-page-cards.is-layout-grid{grid-template-columns:repeat(auto-fit,minmax(min(15rem,100%),1fr))!important}
.it-home-activities>*{max-width:none!important;margin-left:0!important;margin-right:0!important}

/* Compact contact platforms live inside the native footer template part.
   Account links stay absent until the owner supplies them. */
.it-footer-main{display:grid!important;grid-template-columns:minmax(240px,1fr) 250px auto;gap:32px!important;align-items:start!important}
.it-footer-main>*{margin:0!important;min-width:0}
.it-footer-contact{min-width:0}
.it-footer-contact-grid.is-layout-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:4px 14px!important;margin:0!important}
.it-footer-contact-item{display:flex!important;align-items:center;gap:8px!important;min-height:32px;min-width:0;margin:0!important;padding:0;border:0;background:none}
.it-footer-contact-item>*{margin:0!important}
.it-footer-contact-item .it-footer-contact-icon{display:flex;align-items:center;justify-content:center;flex:0 0 20px;width:20px;height:20px}
.it-footer-contact-icon img{display:block;width:20px!important;height:20px!important;object-fit:contain}
.it-footer-contact-name{font-size:.78rem;line-height:1.5;white-space:nowrap;color:var(--it-muted)}
.it-footer-contact .it-footer-contact-note{margin:10px 0 0!important;font-size:.72rem;line-height:1.5;color:var(--it-muted);opacity:.8}
@media(max-width:1100px){
 .it-footer-main{grid-template-columns:minmax(0,1fr) 250px!important;gap:28px 32px!important}
 .it-footer-links{grid-column:1/-1;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px!important}
}
@media(max-width:600px){
 .it-footer-main{grid-template-columns:1fr!important;gap:28px!important}
 .it-footer-contact{max-width:300px}
 .it-footer-contact-item{min-height:36px}
 .it-footer-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px!important}
}

/* Personal introduction: one horizontal profile card above a row of skill tiles. */
.it-profile-card{display:grid!important;grid-template-columns:176px minmax(0,1fr) 270px;gap:32px;align-items:start;margin-top:0!important;margin-bottom:0!important;padding:28px!important;border:1px solid var(--it-line);border-radius:var(--it-radius);background:var(--wp--preset--color--base,#fff)}
.it-profile-card>*{margin:0!important;min-width:0}
.it-home-about .it-profile-avatar{width:176px;aspect-ratio:4/5;border-radius:14px;overflow:hidden;border:1px solid var(--it-line);background:var(--it-soft);user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.it-home-about .it-profile-avatar img{display:block;width:100%;height:100%!important;object-fit:cover;object-position:50% 18%;user-select:none;-webkit-user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none}
.it-profile-id{padding-top:2px}
.it-profile-id>*{margin:0!important}
.it-home-about .it-profile-name{font-size:1.85rem!important;font-weight:600;line-height:1.3;letter-spacing:0}
.it-profile-role{margin-top:4px!important;font-size:.9rem;line-height:1.6;color:var(--it-muted)}
.it-profile-tagline{margin-top:16px!important;font-size:1.05rem;line-height:1.8;color:var(--it-ink)}
.it-profile-facts{display:grid;grid-template-columns:repeat(3,minmax(0,max-content));gap:12px 40px;margin-top:20px!important;padding-top:18px;border-top:1px solid var(--it-line)}
.it-profile-facts>*,.it-fact>*{margin:0!important}
.it-fact-label{font-size:.8rem;line-height:1.6;color:var(--it-muted)}
.it-fact-value{margin-top:2px!important;font-size:1rem;line-height:1.6;color:var(--it-ink)}
.it-profile-contact{align-self:stretch;padding-left:28px;border-left:1px solid var(--it-line)}
.it-profile-contact>*{margin:0!important}
.it-phone-list{gap:6px 24px!important;margin-top:8px!important}
.it-phone-item{gap:2px!important;align-items:center!important}
.it-phone-item>*,.it-phone-buttons{margin:0!important}
.it-phone-code{font-size:.95rem;font-weight:600;line-height:1;color:var(--it-ink);white-space:nowrap;word-break:normal;overflow-wrap:normal}
.it-phone-buttons{gap:0!important;flex-wrap:nowrap!important}
.it-phone-copy .wp-block-button__link{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;min-height:0;padding:0!important;border:0!important;border-radius:50%!important;background:transparent!important;color:var(--it-accent)!important;font-size:0!important;line-height:0;white-space:nowrap;word-break:normal;overflow:hidden;cursor:pointer;box-shadow:none!important;transition:background-color .2s}
.it-phone-copy .wp-block-button__link::after{content:"";flex:0 0 16px;width:16px;height:16px;background:var(--it-accent);-webkit-mask:url("portal-contact-icons/phone.svg") center/contain no-repeat;mask:url("portal-contact-icons/phone.svg") center/contain no-repeat}
.it-phone-copy .wp-block-button__link:hover{background:var(--wp--preset--color--primary-accent,#e9e7ff)!important}
.it-phone-copy .wp-block-button__link:focus-visible{outline:2px solid var(--it-accent);outline-offset:1px}
.it-phone-copy.is-copied .wp-block-button__link{background:#e8f5ee!important}
.it-phone-copy.is-copied .wp-block-button__link::after{background:#197c42;-webkit-mask-image:url("portal-contact-icons/check.svg");mask-image:url("portal-contact-icons/check.svg")}
@media (pointer:coarse){.it-phone-copy .wp-block-button__link{width:44px;height:44px}}
.it-profile-copy-status{margin-top:8px!important;min-height:1.5em;font-size:.8rem;line-height:1.5;color:var(--it-muted)}
.it-profile-email{margin-top:12px!important;font-size:.95rem;white-space:nowrap;overflow-wrap:normal;word-break:normal}
.it-profile-email a{display:inline-flex;align-items:center;gap:8px;min-height:40px;color:var(--it-ink);text-decoration:none;white-space:nowrap;overflow-wrap:normal;word-break:normal}
.it-profile-email a::before{content:"";flex:0 0 16px;height:16px;background:var(--it-accent);-webkit-mask:url("portal-contact-icons/mail.svg") center/contain no-repeat;mask:url("portal-contact-icons/mail.svg") center/contain no-repeat}
.it-profile-email a:hover{color:var(--it-accent);text-decoration:underline;text-underline-offset:4px}
.it-profile-skills{margin-top:24px!important}
.it-profile-skills .it-panel-title{margin:0 0 12px!important;font-size:.85rem!important;font-weight:600;line-height:1.6}
.it-skill-grid.is-layout-grid{grid-template-columns:repeat(auto-fit,minmax(min(13rem,100%),1fr))!important;gap:14px!important}
.it-skill{margin:0!important;padding:20px!important;border:1px solid var(--it-line);border-radius:14px;background:var(--wp--preset--color--base,#fff);transition:border-color .2s}
.it-skill:hover{border-color:#b9b6d6}
.it-skill>*{margin:0!important}
.it-skill-title{margin-bottom:6px!important;font-size:1rem!important;font-weight:600;line-height:1.5}
.it-skill p{font-size:.9rem;line-height:1.75;color:var(--it-muted)}
@media (max-width:1100px){
 .it-profile-card{grid-template-columns:150px minmax(0,1fr)}
 .it-home-about .it-profile-avatar{width:150px}
 .it-profile-contact{grid-column:1/-1;padding:20px 0 0;border-left:0;border-top:1px solid var(--it-line)}
}
@media (max-width:600px){
 .it-profile-card{grid-template-columns:1fr;gap:20px;padding:20px!important}
 .it-home-about .it-profile-avatar{width:128px}
 .it-home-about .it-profile-name{font-size:1.6rem!important}
 .it-profile-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px}
 .it-fact:last-child{grid-column:1/-1}
}

/* Latest notes: a fixed-height list scrolls on its own on wider screens; phones show the newest five. */
@media (min-width:782px){
 .it-post-list .wp-block-post-template{max-height:22rem;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#cfcde3 transparent;padding-right:10px!important;margin-right:-10px!important;
  background:linear-gradient(#fff 30%,rgba(255,255,255,0)) top/100% 28px no-repeat local,linear-gradient(rgba(255,255,255,0),#fff 70%) bottom/100% 28px no-repeat local,radial-gradient(farthest-side at 50% 0,rgba(30,30,38,.12),transparent) top/100% 8px no-repeat scroll,radial-gradient(farthest-side at 50% 100%,rgba(30,30,38,.12),transparent) bottom/100% 8px no-repeat scroll}
}
@media (max-width:781px){.it-post-list .wp-block-post-template>li:nth-child(n+6){display:none}}
@media (hover:none){.it-skill:hover{border-color:var(--it-line)}}
.it-profile-skills>.it-skill-grid{margin-top:0!important}
.it-more-link{font-size:.92rem}
@media (min-width:601px) and (max-width:1100px){.it-skill-grid.is-layout-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}

/* Homepage QR stays in the editable native footer, beside the brand. */
.it-footer-brand-area{display:flex!important;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:24px!important}
.it-footer-brand-area>.it-footer-brand{flex:1 1 190px;min-width:0;margin:0!important}
.it-footer-brand-area>.it-footer-qr{flex:0 0 144px;width:144px;max-width:100%;margin:0!important;background:#fff}
.it-footer-qr img{display:block;width:100%!important;height:auto!important;aspect-ratio:1;object-fit:contain}
@media(max-width:1100px){.it-footer-brand-area{gap:20px!important}.it-footer-brand-area>.it-footer-qr{flex-basis:128px;width:128px}}
@media(max-width:600px){.it-footer-brand-area{gap:16px!important}.it-footer-brand-area>.it-footer-brand{flex-basis:160px}.it-footer-brand-area>.it-footer-qr{flex-basis:112px;width:112px}}
