/* IBLoud portfolio · Material 3 adaptation. One shared source of presentation.
   Semantic role pairs, adaptive layout, shape, typography and interaction states.
   Independent products retain their own identities. */
:root {
 color-scheme: dark;
 --md-sys-color-primary:#dfc0ff; --md-sys-color-on-primary:#38204f;
 --md-sys-color-primary-container:#503766; --md-sys-color-on-primary-container:#f1dcff;
 --md-sys-color-secondary:#a8d5cc; --md-sys-color-on-secondary:#123b34;
 --md-sys-color-surface:#141218; --md-sys-color-surface-container:#211e26;
 --md-sys-color-surface-container-high:#2c2833; --md-sys-color-on-surface:#ece6f0;
 --md-sys-color-on-surface-variant:#cec3d6; --md-sys-color-outline:#9a8fa3;
 --md-sys-color-outline-variant:#4c4355;
 --site-bg:var(--md-sys-color-surface); --site-header:var(--md-sys-color-surface-container);
 --site-card:var(--md-sys-color-surface-container); --site-text:var(--md-sys-color-on-surface);
 --site-muted:var(--md-sys-color-on-surface-variant); --site-border:var(--md-sys-color-outline-variant);
 --site-link:var(--md-sys-color-primary); --site-focus:var(--md-sys-color-secondary);
 --site-action:var(--md-sys-color-primary-container); --site-max:84rem; --site-measure:70ch;
 --site-gutter:clamp(1.25rem,4vw,4rem); --site-section:clamp(2rem,5vw,4.5rem);
 --site-heading-gap:1rem; --site-paragraph-gap:1em; --site-gap:1.5rem;
 --site-body:1.125rem; --site-leading:1.65; --site-title:clamp(2.25rem,4vw,3.5rem);
 --site-subtitle:clamp(1.9rem,3vw,3rem); --site-panel-padding:clamp(1.5rem,3vw,2.5rem); --site-radius:1.75rem;
 font-synthesis:none;
}
:root[data-theme="light"] {
 color-scheme:light; --md-sys-color-primary:#613e7d; --md-sys-color-on-primary:#fff;
 --md-sys-color-primary-container:#dac3ed; --md-sys-color-on-primary-container:#2b143e;
 --md-sys-color-secondary:#24594f; --md-sys-color-on-secondary:#fff;
 --md-sys-color-surface:#d5cedb; --md-sys-color-surface-container:#e4deea;
 --md-sys-color-surface-container-high:#c9bfd2; --md-sys-color-on-surface:#211c27;
 --md-sys-color-on-surface-variant:#514757; --md-sys-color-outline:#7c6f85; --md-sys-color-outline-variant:#a79aad;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:2rem}
body{margin:0;background:var(--site-bg);color:var(--site-text);font:400 var(--site-body)/var(--site-leading) system-ui,-apple-system,"Segoe UI",sans-serif}
a{color:var(--site-link);text-underline-offset:.22em;overflow-wrap:anywhere}
a:hover{text-decoration-thickness:.15em}
:focus-visible{outline:3px solid var(--site-focus);outline-offset:5px}
button,input,select,textarea{font:inherit}
button,input,select,textarea,summary{min-height:3rem}
button{cursor:pointer}
img,video,iframe,svg{max-width:100%}img{height:auto}
h1,h2,h3{margin:0 0 1rem;line-height:1.25;letter-spacing:normal;overflow-wrap:break-word;text-wrap:pretty;font-weight:500}
h1{font-size:var(--site-title);max-width:100%}h2{font-size:var(--site-subtitle);max-width:100%}h3{font-size:1.5rem;line-height:1.25}
p,ul,ol,dl{margin:0 0 1em}p,li,dd,td{overflow-wrap:anywhere}p{max-width:var(--site-measure)}li+li{margin-top:.6em}
ul,ol{padding-left:1.5em}dd{margin:.3em 0 1em;color:var(--site-muted)}dt{font-weight:700}
main,.wrap,.ll-unified-inner{width:min(calc(100% - 2 * var(--site-gutter)),var(--site-max));margin-inline:auto}
main{padding-block:1.5rem 4rem;min-width:0}main>section{padding-block:var(--site-section)}
main>section.ll-panel{margin-block:1.5rem;padding:var(--site-panel-padding)}
main>section+section{border-top:1px solid var(--site-border)}main>:is(h2,h3),main>article>:is(h2,h3){margin-top:var(--site-section)}
main>:is(p,ul,ol,dl){margin-block:1em}main>article{min-width:0}section>:last-child,article>:last-child{margin-bottom:0}
.ll-unified-header{background:var(--site-bg)}
.ll-unified-inner{min-height:6rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-block:1rem;border-bottom:1px solid var(--site-border)}
.ll-unified-brand{font-weight:750;font-size:1.15rem;color:var(--site-text);text-decoration:none;display:flex;align-items:center;gap:.7rem}
.ll-unified-brand::before{content:"D";display:grid;place-items:center;width:2.65rem;height:2.65rem;background:var(--site-action);color:var(--site-link);border-radius:50% 50% 25% 50%;font-size:1.3rem}
.ll-unified-nav{display:flex;align-items:center;flex-wrap:wrap;gap:.2rem}
.ll-unified-nav a{display:inline-flex;align-items:center;min-height:3rem;padding:.5rem .9rem;font-size:.95rem;font-weight:650;text-decoration:none;border-radius:2rem;color:var(--site-muted)}
.ll-unified-nav a:hover{background:var(--md-sys-color-surface-container-high)}
.ll-unified-nav [aria-current="page"]{background:var(--site-action);color:var(--md-sys-color-on-primary-container)}
.theme-toggle{border:1px solid var(--md-sys-color-outline);border-radius:2rem;background:transparent;color:var(--site-text);padding:.45rem 1rem;font-size:.95rem;min-width:7rem}
.theme-toggle:hover{background:var(--site-card)}
.skip-link{position:absolute;top:0;left:var(--site-gutter);transform:translateY(-150%);z-index:100;padding:.75rem 1rem;background:var(--site-focus);color:var(--site-bg)}.skip-link:focus{transform:translateY(0)}
.ll-grid,.grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--site-gap)}.ll-grid>*,.grid>*{min-width:0}
.ll-panel,.card,.ll-collab-path{background:var(--site-card);border:1px solid var(--site-border);border-radius:var(--site-radius);padding:var(--site-panel-padding)}
.ll-panel h2,.card h2{font-size:1.8rem}.ll-panel p,.card p,.muted,.note,.ll-disclosure{color:var(--site-muted)}
.grid .card{display:flex;flex-direction:column;align-items:flex-start}.grid .card>a:first-of-type{margin-top:auto}
.ll-kicker,.ll-eyebrow,.eyebrow{color:var(--md-sys-color-secondary);font-size:.875rem;font-weight:650;letter-spacing:.025em;text-transform:none}
.lead,.ll-lead{font-size:clamp(1.3rem,2vw,1.65rem);line-height:1.5;color:var(--site-muted)}
.ll-founder-links,.ll-ai-links,.ll-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;margin-top:1.5rem}
.ll-founder-links a,.ll-ai-links a,.ll-actions a,.card a{display:inline-flex;min-height:3rem;align-items:center;font-weight:650;padding-block:.5rem}
.ll-action-link,.ll-primary-link,.button-filled,.button-tonal{display:inline-flex;align-items:center;justify-content:center;min-height:3.25rem;padding:.75rem 1.5rem;border-radius:3rem;font-weight:650;text-decoration:none;border:1px solid transparent}
.ll-action-link,.ll-primary-link,.button-filled{background:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary)}
.button-tonal{background:var(--site-action);color:var(--md-sys-color-on-primary-container)}
.ll-action-link:hover,.ll-primary-link:hover,.button-filled:hover,.button-tonal:hover{box-shadow:0 3px 12px #0003;text-decoration:underline}
.tag{display:inline-block;border:1px solid var(--md-sys-color-outline);border-radius:.6rem;padding:.25rem .7rem;margin-bottom:1rem;font-size:.85rem}
.table-wrap,.ll-table-scroll{overflow-x:auto;max-width:100%;margin-block:1.5rem}table{width:100%;border-collapse:collapse}th,td{text-align:left;vertical-align:top;border:1px solid var(--site-border);padding:1rem}th{font-weight:700;background:var(--site-card)}code{overflow-wrap:anywhere}
.footer,main>footer,.portfolio-footer{border-top:1px solid var(--site-border);padding-block:2rem;color:var(--site-muted)}
.ll-footer-links{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;margin-block:2rem}
.footer .wrap,.portfolio-footer .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem}.footer .wrap p,.portfolio-footer p{flex-basis:100%;margin:0}
.footer a,.ll-footer-links a,.portfolio-footer a{display:inline-flex;align-items:center;min-height:3rem}
/* Reading pages keep equal left/right space. Panels share their text measure. */
.ll-research main,.ll-collaborate main,.ll-provenance-ai-assisted-story-development main,.ll-ecosystem-ai-development-case-study main{width:min(calc(100% - 2 * var(--site-gutter)),76ch)}
:is(.ll-research,.ll-collaborate,.ll-provenance-ai-assisted-story-development,.ll-ecosystem-ai-development-case-study) main p{max-width:none}
:is(.ll-research,.ll-collaborate) main .grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr))}
.ll-provenance main>section:first-child{max-width:76ch;margin-inline:auto}
.ll-provenance main>section:first-child p{max-width:none}
.ll-provenance .ll-panel p,.ll-provenance .ll-panel h2{max-width:none}
.ll-metadata{display:flex;flex-wrap:wrap;gap:.6rem 1rem;margin-top:1.5rem}
.ll-metadata span{display:block;padding:.4rem .8rem;border:1px solid var(--md-sys-color-outline);border-radius:.75rem;font-size:1rem}
.ll-panel .ll-panel-heading{font-size:1.35rem;line-height:1.4;color:var(--site-text)}
.ll-section-label{font-size:.875rem;font-weight:650;line-height:1.5;letter-spacing:.025em;color:var(--md-sys-color-secondary)}
/* Portfolio introduction: editorial hierarchy and a restrained, code-native identity. */
.ll-founder-intro{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.founder-copy h1{font-size:clamp(2.75rem,6vw,5.75rem);max-width:100%;margin-bottom:1.5rem}.founder-copy>p:not(.ll-kicker){max-width:54ch}
.founder-emblem{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--site-action);border-radius:48% 48% 2rem 48%;padding:2rem;color:var(--md-sys-color-on-primary-container);position:relative;overflow:hidden}
.founder-emblem svg{width:78%;height:auto;color:var(--site-link)}
.founder-emblem p{margin:1.5rem 0 0;text-align:center;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase}
.founder-emblem .emblem-dot{fill:var(--md-sys-color-secondary)}
.founder-paths{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:2rem}
.founder-path{background:var(--site-card);border-radius:1.5rem;padding:1.5rem;text-decoration:none;display:flex;flex-direction:column;gap:.7rem;min-height:11rem;border:1px solid var(--site-border)}
.founder-path:hover{background:var(--md-sys-color-surface-container-high)}.founder-path span{font-size:.8rem;color:var(--md-sys-color-secondary)}.founder-path strong{font-size:1.35rem;font-weight:600}.founder-path small{font-size:1rem;color:var(--site-muted)}
.ll-founder-section{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.3fr);gap:1rem 4rem}.ll-founder-section h2{grid-column:1;grid-row:1 / span 5}.ll-founder-section>:not(h2){grid-column:2}
.ll-founder-end{background:var(--site-card);border-radius:2rem;padding-inline:var(--site-panel-padding);margin-top:1rem}
#method .ll-panel+ .ll-panel{margin-top:1rem}.prose-r h3{margin-top:2rem}
@media(min-width:48rem){.ll-grid-2,.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.ll-grid-3,.ll-ecosystem .grid:not(.two){grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:75rem){.ll-grid-3,.ll-ecosystem .grid:not(.two){grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:64rem){.ll-unified-inner{justify-content:flex-start}.ll-unified-nav{order:3;flex-basis:100%}.theme-toggle{margin-left:auto}.ll-founder-intro{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}.ll-founder-section{gap:1rem 2rem}}
@media(max-width:43rem){.ll-founder-intro{grid-template-columns:1fr}.founder-emblem{max-width:22rem;justify-self:center}.founder-paths{grid-template-columns:1fr}.founder-path{min-height:0}.ll-founder-section{display:block}.ll-unified-nav a{font-size:.9rem;padding-inline:.7rem}.ll-founder-end{padding:1.5rem}.ll-unified-brand{font-size:1rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media(forced-colors:active){:focus-visible{outline-color:Highlight}.founder-path,.ll-panel,.card{border:1px solid CanvasText}.ll-unified-nav [aria-current="page"]{outline:2px solid Highlight}}
