/* Portfolio-specific styles; the home page keeps its existing visual system. */
.portfolio-page { --pf-soft:#f4f0e3; --pf-surface:#fffdf5; --pf-strong:#e9c85e; background:var(--panel); }
[data-theme=dark] .portfolio-page { --pf-soft:#22261b; --pf-surface:#282d20; --pf-strong:#efd474; }
.portfolio-page .wrap { max-width:1300px; }
.portfolio-page section[id] { scroll-margin-top:104px; }
.portfolio-page button,.portfolio-page a,.project-dialog button { -webkit-tap-highlight-color:transparent; }
.portfolio-page button:focus-visible,.portfolio-page a:focus-visible,.portfolio-page select:focus-visible,.project-dialog button:focus-visible,.project-dialog a:focus-visible,.portfolio-page summary:focus-visible { outline:3px solid var(--accent); outline-offset:5px; }
.pf-kicker { font-family:var(--font-serif); font-size:11px; line-height:1.7; letter-spacing:.095em; color:var(--accent); }
.portfolio-works { padding:84px 0 112px; border-top:1px solid var(--line); }
.pf-section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:30px; margin-bottom:37px; }
.pf-section-head :is(h1,h2) { margin-top:12px; font-size:clamp(31px,3vw,43px); font-weight:680; line-height:1.24; letter-spacing:-.055em; }
.pf-title-dot { color:var(--accent); }
.pf-section-head>p { font-size:13px; line-height:1.75; color:var(--muted); }
.portfolio-toolbar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:17px; }
.portfolio-filters { display:flex; flex-wrap:wrap; gap:6px; }
.portfolio-filters button { display:inline-flex; align-items:center; gap:7px; padding:11px 16px; border-radius:100px; font-size:13px; line-height:1.3; font-weight:600; color:var(--muted); background:transparent; border:1px solid var(--line); transition:background .2s,color .2s; white-space:nowrap; }
.portfolio-filters button span { font-family:var(--font-serif); font-weight:400; font-size:10px; opacity:.65; }
.portfolio-filters button:hover { color:var(--ink); background:var(--pf-soft); }
.portfolio-filters button[aria-pressed=true] { color:#342b12; background:var(--gold-gradient); border-color:transparent; }
.portfolio-scope { position:relative; color:var(--muted); font-size:12px; }
.portfolio-scope select { appearance:none; cursor:pointer; padding:10px 26px 10px 8px; color:var(--ink); background:var(--panel); border:none; }
.portfolio-scope>span:last-child { position:absolute; right:5px; top:7px; pointer-events:none; font-size:17px; }
.portfolio-results { display:flex; justify-content:space-between; align-items:center; margin:25px 0 18px; font-size:10px; color:var(--muted); }
.portfolio-results>span:last-child { display:flex; align-items:center; gap:5px; }
.portfolio-results svg { width:12px; height:12px; }
.portfolio-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:42px 25px; }
.work-card[hidden] { display:none!important; }
.work-card-button { width:100%; display:block; text-align:left; color:var(--ink); }
.work-cover { overflow:hidden; border-radius:20px; position:relative; }
.case-art { position:relative; aspect-ratio:1.6; overflow:hidden; isolation:isolate; }
.work-scope { position:absolute; top:18px; left:18px; padding:6px 10px; border-radius:100px; font-size:10px; letter-spacing:-.01em; color:#f9f6e7; background:#1d241ccb; backdrop-filter:blur(8px); border:1px solid #ffffff1a; }
.work-info { padding:20px 4px 0; }
.work-meta { display:flex; justify-content:space-between; gap:10px; font-size:10px; color:var(--muted); margin-bottom:11px; }
.work-meta>span:first-child { color:var(--accent); }
.work-meta>span:last-child { text-align:right; }
.work-info h3 { display:flex; align-items:center; justify-content:space-between; gap:15px; font-size:26px; line-height:1.3; font-weight:650; letter-spacing:-.045em; }
.work-arrow { width:30px; height:30px; border-radius:50%; display:grid; place-items:center; border:1px solid var(--line); color:var(--muted); transition:background .2s,transform .2s; flex:none; }
.work-arrow svg { width:15px; height:15px; }
.work-info p { font-size:14px; line-height:1.65; margin-top:7px; color:var(--muted); letter-spacing:-.02em; }
.work-card-button:hover .work-arrow { transform:rotate(45deg); background:var(--gold-gradient); color:#342b12; border-color:transparent; }
.art-image { background:#e9e6dd; display:flex; align-items:center; justify-content:center; padding:29px; }
.art-image img { width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 10px 18px #0001); transition:transform .55s cubic-bezier(.2,.7,.3,1); }
.work-card-button:hover .art-image img { transform:scale(1.04); }
.art-image-shinil { padding:0; background:#e6c36d; }
.art-image-shinil img { width:108%; max-width:none; height:auto; object-fit:cover; }
.art-image-lasbook { padding:40px; background:#d9e5de; }
.art-image-lasbook img { border-radius:7px; }
.art-image-seller { background:#c4c0e8; padding:42px 32px; }
.art-image-seller img { border-radius:7px; }
.art-image-kbo { background:#d8e7ef; }
.art-image-marketsaver { background:#dbeef3; }
.art-image-facial { background:#e0e5df; }
.art-image-aiwi { background:#f2e7be; }
.art-image-infoletter { background:#eee2cc; padding:64px; }
.art-image-immersity { background:#dbe7f0; }
.art-image-yedeco { background:#f4dbe4; }
.art-image-silver { background:#d8e4e4; }
.art-image-secrs { background:#17242c; padding:23px; }
.art-image-secrs img { object-fit:contain; }
.art-image-n8n { background:#efcfda; padding:70px; }
.art-image-midjourney { background:#ead372; padding:22px; }
.art-image-mentoring { background:#dcd1ed; padding:22px; }
.art-image-inbugs { background:#d7e7ee; }
.art-image-aiart { background:#e3e8de; }
.art-image-devnight { padding:0; background:#2b332b; }
.art-image-devnight img { height:100%; width:100%; object-fit:cover; }
.art-image-itbusanday { background:#cde9f2; padding:22px; }
.art-image-sagawa { background:#d6e1ed; padding:35px; }
.art-image-transcore { background:#e1e5d7; }
.image-open { position:absolute; bottom:16px; right:16px; display:grid; place-items:center; width:28px; height:28px; border-radius:50%; color:#31372d; background:#ffffffb3; opacity:0; transform:translateY(5px); transition:.25s; }
.image-open svg { width:16px; height:16px; }
.work-card-button:hover .image-open { opacity:1; transform:none; }
.art-companion { background:radial-gradient(ellipse at 50% 45%,#464d27,#23291c 66%); color:#f5e7a0; display:grid; place-items:center; }
.art-companion:before { content:''; position:absolute; inset:0; opacity:.15; background-image:radial-gradient(#efe4b6 1px,transparent 1px); background-size:22px 22px; z-index:-1; }
.companion-core { width:32%; aspect-ratio:1; border-radius:37%; background:linear-gradient(140deg,#fff3b3,#ebce67 45%,#c49c3c); box-shadow:inset -15px -18px 27px #a57f333d,inset 8px 6px 18px #fff9d799,0 24px 50px #090c166b,0 0 80px #e6c34e22; position:relative; transform:rotate(-8deg); transition:transform .7s; }
.work-card-button:hover .companion-core { transform:rotate(5deg) translateY(-5px); }
.core-eyes { position:absolute; display:flex; justify-content:space-between; width:40%; left:30%; top:39%; }
.core-eyes i { width:11px; height:19px; background:#433d1c; border-radius:100px; }
.core-smile { position:absolute; width:19%; height:11%; left:41%; top:59%; border-bottom:3px solid #433d1c; border-radius:50%; }
.art-orbit { position:absolute; width:66%; height:70%; border:1px solid #f3db8730; border-radius:50%; transform:rotate(-30deg); z-index:-1; }
.orbit-two { width:80%; height:39%; transform:rotate(25deg); }
.art-node { position:absolute; padding:8px 13px; border:1px solid #f5df982e; background:#313824e0; backdrop-filter:blur(7px); border-radius:10px; color:#eee6c9; font-size:12px; box-shadow:0 5px 15px #0002; }
.art-node small { font-family:var(--font-serif); font-size:7px; display:block; margin-top:2px; color:#c8b76b; letter-spacing:.1em; }
.node-voice { left:13%; top:31%; transform:rotate(-8deg); }.node-memory { right:12%; top:22%; transform:rotate(8deg); }.node-emotion { right:18%; bottom:21%; transform:rotate(-5deg); }
.art-caption { position:absolute; left:25px; right:25px; bottom:19px; display:flex; align-items:center; justify-content:space-between; gap:12px; font-family:var(--font-serif); font-size:9px; letter-spacing:.03em; }
.art-caption>span:last-child { display:flex; align-items:center; gap:5px; font-size:7px; opacity:.6; }
.art-caption svg { width:11px; height:11px; }
.portfolio-more { display:flex; align-items:center; justify-content:center; flex-direction:column; gap:14px; margin-top:53px; }.portfolio-more .btn { min-width:225px; font-size:13px; border-radius:100px; }.portfolio-more .btn>span { font-size:20px; font-weight:400; }.portfolio-more>span { font-size:10px; color:var(--muted); font-family:var(--font-serif); }.portfolio-empty { text-align:center; padding:90px 20px; color:var(--muted); }.portfolio-empty button { margin-top:20px; color:var(--accent); text-decoration:underline; }
.portfolio-teaching { background:var(--pf-soft); padding:106px 0; }.teaching-lead { display:grid; grid-template-columns:1.2fr 1fr; gap:70px; align-items:center; }.teaching-lead h2 { font-size:clamp(38px,3.8vw,55px); line-height:1.25; letter-spacing:-.055em; font-weight:680; margin-top:20px; }.teaching-lead h2>span { color:var(--accent); }.teaching-lead>div>p:not(.pf-kicker) { font-size:16px; line-height:1.8; color:var(--muted); margin-top:23px; }.teaching-topics { display:flex; flex-wrap:wrap; gap:7px; margin-top:24px; }.teaching-topics span { padding:6px 9px; border-radius:5px; font-size:11px; color:var(--muted); border:1px solid var(--line); }
.teaching-stats { display:grid; grid-template-columns:1fr 1fr; gap:18px; padding-top:32px; }.teaching-stats>div+div { padding-left:28px; border-left:1px solid var(--line); }.teaching-stats strong { font-size:clamp(42px,4.2vw,63px); font-weight:500; letter-spacing:-.06em; line-height:1; }.teaching-stats strong>span { font-size:27px; color:var(--accent); letter-spacing:-.05em; }.teaching-stats p { font-size:13px; margin-top:18px; color:var(--muted); }
.teaching-clients { margin-top:44px; }.teaching-clients>p { font-size:12px; color:var(--muted); }.teaching-clients>div { display:flex; flex-wrap:wrap; column-gap:28px; row-gap:16px; margin:20px 0 16px; }.teaching-clients>div>span { font-size:16px; font-weight:600; letter-spacing:-.04em; }.teaching-clients>small { color:var(--muted); font-size:10px; }
.portfolio-founder { padding:158px 0 85px; }.founder-github { display:flex; align-items:center; gap:8px; padding:7px 0; border-bottom:1px solid var(--line); font-size:12px; }.founder-github svg { width:14px; height:14px; }
.founder-role { font-size:12px; color:var(--accent); }.founder-bio>p { margin-top:23px; color:var(--muted); font-size:15px; line-height:1.95; letter-spacing:-.02em; }.founder-tags { display:flex; flex-wrap:wrap; gap:16px; font-size:11px; margin-top:25px; color:var(--accent); }.founder-tags span:before { content:'+'; margin-right:5px; opacity:.7; }.founder-education { display:flex; gap:20px; justify-content:space-between; padding-top:21px; margin-top:24px; border-top:1px solid var(--line); font-size:11px; }.founder-education>span { color:var(--muted); white-space:nowrap; }
.founder-track { margin-top:64px; }
.career-list { margin:0; list-style:none; }.career-list>li { display:grid; grid-template-columns:135px 1fr; gap:17px; padding:20px 0; border-top:1px solid var(--line); }.career-list>li:last-child { border-bottom:1px solid var(--line); }.career-date { font-family:var(--font-serif); color:var(--muted); font-size:10px; padding-top:3px; line-height:1.7; }.career-list h3 { font-size:16px; font-weight:600; letter-spacing:-.03em; }.career-list p { font-size:11px; line-height:1.6; color:var(--muted); margin-top:7px; }
.founder-community { border-top:1px solid var(--line); margin-top:48px; padding-top:28px; display:flex; gap:45px; align-items:flex-start; }.founder-community>span { font-family:var(--font-serif); font-size:9px; color:var(--accent); padding-top:4px; white-space:nowrap; }.founder-community p { color:var(--muted); font-size:13px; line-height:1.9; }
.portfolio-outro { text-align:center; background:radial-gradient(ellipse at 50% 110%,#e7c45526,transparent 65%),var(--pf-soft); padding:95px 0 100px; }.portfolio-outro h2 { margin-top:23px; font-size:clamp(37px,3.9vw,54px); line-height:1.27; letter-spacing:-.05em; font-weight:670; }.portfolio-outro h2>span { color:var(--muted); }.portfolio-outro .btn { margin-top:33px; border-radius:100px; font-size:13px; }.portfolio-page>.panel { border-radius:0; }
.project-modal-open { overflow:hidden; }.project-dialog { --pf-soft:#f4f0e3; background:var(--panel); color:var(--ink); border:1px solid var(--line); padding:0; margin:auto; width:min(850px,calc(100% - 40px)); max-height:calc(100dvh - 56px); border-radius:22px; overscroll-behavior:contain; box-shadow:0 30px 140px #0008; }.project-dialog::backdrop { background:#060905b8; backdrop-filter:blur(8px); }.project-dialog-top { position:sticky; top:0; z-index:5; display:flex; align-items:center; justify-content:space-between; padding:13px 21px; background:var(--panel); border-bottom:1px solid var(--line); }.project-dialog-top>span { font-size:9px; letter-spacing:.08em; color:var(--muted); font-family:var(--font-serif); }.project-dialog-top>button { display:grid; place-items:center; width:34px; height:34px; border:1px solid var(--line); border-radius:50%; }.project-dialog-top svg { width:18px; height:18px; }.detail-cover .case-art { aspect-ratio:2.05; }.detail-cover .image-open { display:none; }.detail-cover .companion-core { width:24%; }.detail-cover .art-orbit { width:47%; }.detail-cover .orbit-two { width:68%; }.detail-body { padding:38px 45px 43px; }.detail-kicker { display:flex; gap:12px; font-size:11px; color:var(--accent); }.detail-kicker>span+span { border-left:1px solid var(--line); padding-left:12px; }.detail-body h2 { margin-top:15px; font-size:35px; line-height:1.3; font-weight:650; letter-spacing:-.04em; outline:none; }.detail-subtitle { margin-top:7px; font-size:18px; line-height:1.6; color:var(--muted); }.detail-description { margin-top:25px; font-size:15px; line-height:1.85; color:var(--muted); }.detail-meta { display:grid; grid-template-columns:1fr 1fr; gap:21px; margin:30px 0; padding:23px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.detail-meta>div:first-child { grid-column:1/-1; }.detail-meta dt { color:var(--muted); font-size:10px; margin-bottom:7px; }.detail-meta dd { font-size:13px; line-height:1.6; }.detail-body h3 { font-size:17px; font-weight:600; letter-spacing:-.025em; }.detail-highlights { margin-top:18px; display:grid; gap:12px; }.detail-highlights li { display:flex; gap:12px; font-size:13px; line-height:1.8; color:var(--muted); }.detail-highlights svg { width:16px; height:16px; flex:none; color:var(--accent); margin-top:4px; }.detail-tech { display:flex; flex-wrap:wrap; gap:7px; margin-top:25px; }.detail-tech>span { padding:6px 10px; font-size:10px; border:1px solid var(--line); border-radius:7px; color:var(--muted); }.detail-evidence { margin-top:30px; }.detail-evidence img { width:100%; height:auto; border-radius:10px; }.detail-evidence figcaption { font-size:10px; color:var(--muted); margin-top:9px; }.detail-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:9px; margin-top:36px; }.detail-actions .btn { font-size:12px; border-radius:100px; padding:12px 17px; }

@media(max-width:1000px) {.teaching-lead { gap:35px; }.career-list>li { grid-template-columns:1fr; gap:7px; }.art-caption { left:20px; right:20px; }.work-cover .art-caption>span:last-child { display:none; }.teaching-stats strong { font-size:46px; }.teaching-stats strong>span { font-size:23px; } }
@media(max-width:700px) {.portfolio-works { padding:56px 0 65px; }.pf-section-head { align-items:flex-start; margin-bottom:27px; gap:18px; }.pf-section-head :is(h1,h2) { font-size:31px; }.pf-section-head>p { display:none; }.portfolio-toolbar { gap:17px; }.portfolio-filters { gap:6px; }.portfolio-filters button { font-size:11px; padding:9px 12px; gap:5px; }.portfolio-filters button span { font-size:9px; }.portfolio-scope { font-size:11px; margin-left:auto; }.portfolio-results { margin-top:13px; }.portfolio-results>span:last-child { display:none; }.portfolio-grid { gap:29px 14px; }.work-cover { border-radius:14px; }.work-scope { top:11px; left:11px; font-size:8px; padding:4px 7px; }.work-info { padding-top:15px; }.work-info h3 { font-size:22px; }.work-info p { font-size:12px; }.work-meta { font-size:9px; line-height:1.5; margin-bottom:6px; }.work-arrow { width:25px; height:25px; }.work-arrow svg { width:13px; height:13px; }.case-art { aspect-ratio:1.45; }.art-image { padding:20px; }.art-image-shinil,.art-image-devnight { padding:0; }.art-image-infoletter,.art-image-n8n { padding:30px; }.art-image-midjourney,.art-image-mentoring,.art-image-itbusanday { padding:15px; }.art-caption { font-size:7px; left:16px; right:16px; bottom:13px; }.art-node { padding:5px 9px; font-size:9px; }.art-node small { font-size:6px; }.core-eyes i { width:7px; height:12px; }.core-smile { border-bottom-width:2px; }.portfolio-more { margin-top:36px; }.portfolio-teaching { padding:66px 0; }.teaching-lead { grid-template-columns:1fr; gap:33px; }.teaching-lead h2 { font-size:40px; }.teaching-lead>div>p:not(.pf-kicker) { font-size:14px; }.teaching-stats { max-width:430px; padding-top:8px; }.teaching-stats strong { font-size:60px; }.teaching-stats strong>span { font-size:29px; }.teaching-stats p { font-size:12px; }.teaching-clients>div { column-gap:19px; row-gap:12px; }.teaching-clients>div>span { font-size:14px; }.teaching-clients>small { display:block; font-size:9px; line-height:1.7; }.portfolio-founder { padding:122px 0 55px; }.founder-bio>p { font-size:14px; }.founder-github { font-size:11px; margin-top:34px; }.founder-track { margin-top:42px; }.career-list>li { grid-template-columns:135px 1fr; }.founder-community { flex-direction:column; gap:15px; margin-top:33px; }.founder-community p { font-size:12px; }.founder-community br { display:none; }.portfolio-outro { padding:66px 0 73px; }.portfolio-outro h2 { font-size:39px; }.project-dialog { width:calc(100% - 20px); max-height:calc(100dvh - 24px); border-radius:16px; }.project-dialog-top { padding:11px 14px; }.project-dialog-top>span { font-size:8px; }.detail-cover .case-art { aspect-ratio:1.6; }.detail-body { padding:27px 24px 31px; }.detail-body h2 { font-size:29px; }.detail-subtitle { font-size:15px; }.detail-description { font-size:13px; }.detail-meta { grid-template-columns:1fr; gap:16px; }.detail-highlights li { font-size:12px; }.detail-actions .btn { font-size:11px; }.detail-cover .companion-core { width:30%; }.detail-cover .art-orbit { width:62%; } }
@media(max-width:520px) { .portfolio-grid { grid-template-columns:1fr; gap:31px; }.case-art { aspect-ratio:1.58; }.art-caption { font-size:8px; }.work-scope { font-size:9px; }.art-image-infoletter,.art-image-n8n { padding:45px; }.work-info h3 { font-size:25px; }.work-info p { font-size:13px; }.work-meta { font-size:10px; }.career-list>li { grid-template-columns:1fr; gap:7px; }.founder-education { font-size:10px; gap:10px; }.portfolio-outro h2 { font-size:35px; } }
@media(max-width:359px) {.portfolio-filters button { font-size:10px; padding:8px 10px; }.pf-section-head :is(h1,h2) { font-size:28px; }.teaching-stats strong { font-size:50px; }.teaching-stats strong>span { font-size:23px; }.detail-body { padding:23px 18px 28px; }.portfolio-outro h2 { font-size:30px; } }

.art-text { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:17px; padding:55px 30px; text-align:center; background:linear-gradient(145deg,#f8f1d9,#eee5c9); color:#383a2b; }
.case-text-category { font-size:11px; letter-spacing:.08em; color:#93751d; }
.case-text-title { max-width:100%; font-size:clamp(24px,2.6vw,36px); font-weight:500; letter-spacing:-.05em; line-height:1.35; word-break:keep-all; overflow-wrap:anywhere; text-wrap:balance; }
.case-text-topics { max-width:100%; font-size:12px; line-height:1.8; color:#77735e; word-break:keep-all; text-wrap:balance; }
.founder-links { display:flex; flex-wrap:wrap; gap:25px; margin-top:27px; font-size:12px; }
.founder-links a { display:inline-flex; align-items:center; gap:11px; padding:8px 0; border-bottom:1px solid var(--line); }
.founder-links a:hover { color:var(--accent); border-color:var(--accent); }
.career-list>li { grid-template-columns:180px 1fr; padding:24px 0; }
.career-list>li>div { display:grid; grid-template-columns:minmax(180px,.7fr) 1fr; gap:20px; align-items:baseline; }
.career-list p { margin-top:0; }
@media(max-width:1000px) { .career-list>li { grid-template-columns:145px 1fr; }.career-list>li>div { grid-template-columns:1fr; gap:7px; } }
@media(min-width:521px) and (max-width:700px) { .art-text { gap:10px; padding:44px 18px 30px; }.case-text-title { font-size:23px; }.case-text-topics { font-size:10px; }.case-text-category { font-size:10px; } }
@media(max-width:700px) { .founder-links { font-size:12px; margin-top:22px; }.detail-cover .art-text { padding:32px 24px; }.detail-cover .case-text-title { font-size:30px; } }
@media(max-width:520px) { .career-list>li { grid-template-columns:1fr; gap:9px; }.case-text-title { font-size:30px; }.art-text { gap:13px; padding:48px 24px 34px; }.case-text-topics { font-size:11px; } }
@media(max-width:359px) { .case-text-title { font-size:26px; }.case-text-topics { font-size:10px; }.art-text { padding-inline:18px; } }

/* Text-led introduction and education carousel. */
.founder-profile { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; }
.founder-heading h1 { font-size:clamp(36px,3.7vw,53px); line-height:1.3; letter-spacing:-.055em; font-weight:500; margin-top:26px; }
.founder-heading h1>span { color:var(--accent); }
.founder-bio { padding-top:30px; }
.founder-byline { display:flex; align-items:center; flex-wrap:wrap; gap:12px; }
.founder-name { font-size:16px; }
.founder-byline .founder-role { font-size:11px; }
.founder-byline .founder-github { margin:0 0 0 auto; }
.founder-bio>p { margin-top:19px; }
.founder-track { margin-top:55px; }
.portfolio-teaching { padding:76px 0 80px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.teaching-lead h2 { font-size:clamp(38px,3.5vw,49px); }
.teaching-stats strong { font-size:clamp(56px,5.3vw,76px); }
.education-carousel { margin-top:53px; }
.carousel-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; }
.carousel-heading h3 { font-size:24px; font-weight:500; letter-spacing:-.04em; margin-top:10px; }
.carousel-controls { display:flex; align-items:center; gap:9px; flex-shrink:0; }
.carousel-controls[hidden] { display:none; }
.carousel-count { font-size:11px; font-variant-numeric:tabular-nums; color:var(--muted); margin-right:9px; min-width:57px; text-align:right; }
.carousel-controls button { display:grid; place-items:center; width:40px; height:40px; border:1px solid var(--line); border-radius:50%; background:var(--panel); color:var(--ink); font-size:20px; transition:background .2s,color .2s; }
.carousel-controls button:hover:not(:disabled) { background:var(--gold-gradient); }
.carousel-controls button:disabled { opacity:.3; cursor:default; }
.portfolio-carousel-track { position:relative; display:flex; gap:18px; list-style:none; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scroll-padding-inline:2px; scrollbar-width:none; margin:26px 0 0; padding:3px 2px 17px; }
.portfolio-carousel-track::-webkit-scrollbar { display:none; }
.portfolio-carousel-track:focus-visible { outline:2px solid var(--accent); outline-offset:5px; border-radius:16px; }
.portfolio-carousel-track>li { flex:0 0 calc((100% - 36px)/3); min-width:0; scroll-snap-align:start; border:1px solid var(--line); border-radius:18px; }
.education-card { display:flex; flex-direction:column; min-height:345px; padding:27px 28px; background:var(--panel); }
.education-card-top { display:flex; justify-content:space-between; gap:12px; color:var(--accent); font-size:11px; letter-spacing:.035em; }
.education-card-top>span { color:var(--muted); opacity:.6; }
.education-card h4 { margin-top:33px; font-size:24px; font-weight:500; letter-spacing:-.035em; line-height:1.4; word-break:keep-all; text-wrap:balance; }
.education-audience { margin-top:24px; font-size:12px; color:var(--muted); line-height:1.75; word-break:keep-all; }
.education-audience>span { display:block; font-size:9px; color:var(--accent); margin-bottom:6px; letter-spacing:.04em; }
.education-card-featured { background:#fbf0c9; border-color:#d8bd666b!important; }
.education-outcome { font-size:11px; color:var(--muted); line-height:1.75; margin-top:18px; }
.education-outcome strong { display:block; font-weight:400; color:#8c6c15; margin-top:7px; }
.carousel-hint { margin-top:2px; color:var(--muted); font-size:10px; line-height:1.8; }
.teaching-clients { border-top:1px solid var(--line); padding-top:29px; margin-top:33px; }
@media(max-width:1000px) {
  .founder-profile { gap:36px; }.founder-heading h1 { font-size:37px; }
  .portfolio-carousel-track>li { flex-basis:calc((100% - 18px)/2); }
}
@media(max-width:700px) {
  .portfolio-founder { padding-top:125px; padding-bottom:47px; }
  .founder-profile { grid-template-columns:1fr; gap:30px; }.founder-heading h1 { font-size:clamp(30px,7.5vw,43px); margin-top:23px; }.founder-bio { padding-top:0; }
  .founder-byline { gap:10px; }.founder-name { font-size:15px; }.founder-track { margin-top:38px; }.portfolio-teaching { padding:52px 0 56px; }.teaching-lead h2 { font-size:39px; }.teaching-stats { gap:12px; }.teaching-stats strong { font-size:57px; }
  .carousel-heading { gap:18px; align-items:center; }.carousel-heading h3 { font-size:22px; }.carousel-controls { gap:6px; }.carousel-count { font-size:10px; min-width:43px; margin-right:2px; }
  .carousel-controls button { width:34px; height:34px; font-size:18px; }
  .portfolio-carousel-track { gap:13px; margin-top:24px; }.portfolio-carousel-track>li { flex-basis:calc(100% - 25px); border-radius:15px; }
  .education-carousel { margin-top:38px; }.education-carousel .carousel-heading { flex-wrap:wrap; row-gap:18px; }.education-carousel .carousel-controls { margin-left:auto; }
  .education-card { min-height:342px; padding:27px 25px; }.education-card h4 { font-size:25px; margin-top:30px; }.education-audience { font-size:12px; }.education-outcome { font-size:11px; }
  .teaching-clients { padding-top:26px; margin-top:26px; }
}
@media(max-width:359px) {
  .carousel-heading { flex-wrap:wrap; }.carousel-controls { margin-left:auto; }.education-card { padding:25px 21px; }.education-card h4 { font-size:23px; }
  .founder-byline .founder-role { font-size:10px; }.teaching-stats strong { font-size:49px; }
}

/* Landscape cards: width to height is 4:3, with room for every course. */
.education-track { align-items:flex-start; }
.education-track>.education-card { aspect-ratio:4 / 3; min-height:0; padding:22px; container-type:inline-size; }
.education-card-top { font-size:clamp(9px,3.4cqi,11px); }
.education-card h4 { margin-top:18px; font-size:clamp(16px,7cqi,23px); line-height:1.3; }
.education-audience { margin-top:16px; font-size:clamp(10px,3.8cqi,12px); line-height:1.6; }
.education-audience>span { font-size:9px; margin-bottom:4px; }
.education-card-featured h4 { margin-top:12px; font-size:clamp(15px,6.5cqi,20px); }
.education-card-featured .education-audience { margin-top:10px; }
.education-outcome { font-size:clamp(8.5px,3.1cqi,10px); line-height:1.5; margin-top:8px; }
.education-outcome strong { margin-top:3px; }
.carousel-controls [data-carousel-toggle] { color:var(--accent); font-family:system-ui,sans-serif; font-size:16px; }
@media(max-width:700px) { .education-track>.education-card { padding:20px; } }
@media(max-width:359px) { .education-track>.education-card { padding:16px; }.education-card h4 { margin-top:12px; }.education-audience { margin-top:12px; }.education-card-featured h4 { margin-top:10px; }.education-card-featured .education-audience { margin-top:8px; } }

@media(prefers-reduced-motion:reduce) { .portfolio-page *,.project-dialog * { scroll-behavior:auto!important; animation:none!important; transition:none!important; } }
