:root{--type-body:1rem;--type-caption:.8125rem;--type-small:.875rem;--type-heading:1.5rem;--ink:#163b32;--muted:#596a60;--paper:#f8f9f5;--line:#dce3d8;--lime:#dcf6b7}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:104px}body{margin:0;color:var(--ink);background:var(--paper);font-family:'Manrope','Noto Sans KR',sans-serif;font-size:var(--type-body);line-height:1.8;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #6a982d;outline-offset:5px}[hidden]{display:none!important}::selection{background:var(--lime)}.wrap{max-width:1200px;margin:auto;padding:0 48px}h1,h2,h3,h4,p{word-break:keep-all;overflow-wrap:break-word}h1,h2,h3{text-wrap:balance}.skip{position:absolute;top:-100px;left:16px;padding:10px 16px;background:var(--ink);color:white;z-index:10}.skip:focus{top:10px}.header{position:sticky;top:0;z-index:5;background:#f8f9f5f2;border-bottom:1px solid var(--line);backdrop-filter:blur(10px)}.nav{height:80px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:12px;font-size:1.125rem}.mark{display:grid;place-items:center;width:36px;height:36px;background:var(--ink);color:var(--lime);border-radius:10px;font-weight:800}.brand>span:last-child{font-size:0.625rem;letter-spacing:1px;color:var(--muted)}.nav-links{display:flex;align-items:center;gap:28px;font-size:var(--type-small)}.nav-links>a{min-height:44px;display:inline-flex;align-items:center}.nav-external{border:1px solid #bccbb4;border-radius:30px;padding:5px 18px}.hero{padding:80px 0 76px;max-width:820px}.eyebrow{font-size:var(--type-caption);margin:0;display:flex;align-items:center;gap:8px;color:var(--muted)}.dot{width:6px;height:6px;border-radius:50%;background:#6c923e}.hero h1{font-size:clamp(2.125rem,4vw,3rem);font-weight:700;line-height:1.45;letter-spacing:-1.6px;margin:18px 0 22px}.hero-name{font-size:1.12em;font-weight:800}.hero em{font-style:normal;background:linear-gradient(transparent 70%,var(--lime) 70%)}.intro{font-size:1.0625rem;color:var(--muted);line-height:1.9;max-width:40em;text-wrap:balance;margin:0 0 32px}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px}.button{display:inline-flex;align-items:center;justify-content:center;gap:22px;min-height:48px;padding:12px 22px;background:var(--ink);color:white;border-radius:7px;font-size:var(--type-small);font-weight:600}.text-link{display:inline-flex;align-items:center;min-height:44px;font-size:var(--type-small);text-decoration:underline;text-underline-offset:5px}.section{padding:56px 0 16px;border-top:1px solid var(--line);margin-top:48px}.hero+.section{margin-top:0}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:32px}.section-index{font-size:0.75rem;color:var(--muted);display:block;margin-bottom:10px}.section-head h2{font-size:1.875rem;line-height:1.5;letter-spacing:-.8px;margin:0}.section-head>p{font-size:var(--type-small);color:var(--muted);margin:0}.featured-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;align-items:start}.featured{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:white}.feature-art{display:block;background:#eef3e8}.feature-art img{display:block;width:100%;height:auto}.feature-art:has(img) .art-fallback{display:none}.art-fallback{padding:32px;min-height:190px}.art-fallback span{font-size:0.75rem}.art-fallback b{display:block;font-size:var(--type-heading);margin:12px 0}.art-fallback p{font-size:var(--type-small)}.art-caption{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 18px;background:#edf2e6;font-size:0.6875rem}.art-caption>span{white-space:nowrap}.feature-body{padding:28px}.feature-kicker{font-size:0.75rem;color:var(--muted)}.feature-body h3{font-size:1.5625rem;line-height:1.5;margin:12px 0 16px;letter-spacing:-.7px}.feature-body h3 a{display:flex;align-items:baseline;justify-content:space-between;gap:14px}.feature-body h3 span{font-size:1.25rem;flex-shrink:0;color:#67845b}.project-description{font-size:0.9375rem;color:var(--muted);line-height:1.9;margin:0 0 24px}.project-description strong,.project-row strong{font-weight:700;color:var(--ink)}.project-actions{display:flex;flex-wrap:wrap;gap:8px 24px}.project-actions a{font-size:var(--type-small);min-height:44px;display:inline-flex;align-items:center}.detail{font-weight:600}.more-projects{margin-top:40px}.list-label{font-size:var(--type-caption);color:var(--muted);margin-bottom:14px}.project-row{display:grid;grid-template-columns:26px 1fr 1.4fr 20px;gap:20px;align-items:center;padding:24px 0;border-top:1px solid var(--line)}.row-number{font-size:0.6875rem;color:var(--muted)}.project-row h3{font-size:1.0625rem;margin:0;line-height:1.65}.project-row p{font-size:var(--type-small);color:var(--muted);line-height:1.9;margin:0}.row-arrow{font-size:1.25rem}.capabilities{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;align-items:start}.capability{padding:24px 0}.capability h3{font-size:1.4375rem;margin:0 0 14px;letter-spacing:-.5px}.cap-intro{font-size:0.9375rem;color:var(--muted);margin:0 0 18px}.skill-details summary{font-size:var(--type-caption);cursor:pointer;min-height:44px;padding:9px 0}.cap-items{margin-top:12px;border-top:1px solid var(--line)}.cap-items>div{padding-top:20px}.cap-items h4{font-size:var(--type-small);line-height:1.7;margin:0 0 8px}.cap-items p{font-size:var(--type-small);color:var(--muted);line-height:1.85;margin:0}.groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}.group{padding:12px 0;display:flex;flex-direction:column}.group-index{display:none}.group h3{font-size:1.4375rem;margin:0 0 16px;letter-spacing:-.5px}.group p{font-size:0.9375rem;color:var(--muted);line-height:1.9;margin:0 0 20px}.group a{font-size:var(--type-small);min-height:44px;display:inline-flex;align-items:center;margin-top:auto;align-self:flex-start}.closing{margin-top:72px;padding:44px 0;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:32px}.closing .eyebrow{display:none}.closing h2{font-size:1.6875rem;margin:0 0 12px;letter-spacing:-.6px}.closing p{font-size:0.9375rem;color:var(--muted);margin:0}.closing .button{flex-shrink:0}footer{border-top:1px solid var(--line);padding:28px 0 36px;display:flex;justify-content:space-between;align-items:flex-start;gap:28px;font-size:0.6875rem;color:var(--muted)}.footer-notice{display:grid;gap:4px;max-width:920px}.footer-notice strong{font-size:0.75rem;line-height:1.6;color:var(--ink);font-weight:600}.footer-notice span{display:block;line-height:1.65}footer a{font-size:0.75rem;white-space:nowrap}.viewer-open{overflow:hidden}#image-viewer{border:1px solid var(--line);border-radius:12px;padding:20px;width:min(1120px,94vw);max-height:92dvh;color:var(--ink);background:var(--paper)}#image-viewer::backdrop{background:#102b25bd}.viewer-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.viewer-head h2{font-size:1.125rem;line-height:1.5;margin:0}.viewer-head button{border:1px solid #aabb9f;border-radius:6px;background:white;min-width:78px;min-height:44px;color:var(--ink);cursor:pointer;flex-shrink:0}.viewer-canvas{overflow:auto;max-height:70dvh;background:#fff;border:1px solid var(--line);border-radius:5px}.viewer-canvas img{display:block;width:100%;height:auto;min-width:680px}.viewer-canvas p{padding:20px;font-size:0.9375rem}#viewer-source{display:inline-flex;align-items:center;min-height:44px;font-size:var(--type-small);text-decoration:underline;text-underline-offset:4px}
@media(hover:hover){a:hover{color:#496d35}.button:hover{color:white;background:#315747}.feature-art:hover{opacity:.95}.project-row:hover h3,.project-actions a:hover{text-decoration:underline;text-underline-offset:5px}}
@media(max-width:1000px){.wrap{padding-inline:32px}.featured-grid,.capabilities,.groups{gap:24px}.feature-body{padding:24px}.project-row{grid-template-columns:24px 1fr 1.15fr 20px;gap:16px}.nav-links{gap:20px}}
@media(max-width:760px){.nav-external{display:none!important}.hero{padding:60px 0}.featured-grid{grid-template-columns:1fr;gap:32px}.capabilities,.groups{grid-template-columns:1fr;gap:20px}.capability{padding:20px 0;border-bottom:1px solid var(--line)}.capability:last-child{border-bottom:0}.section-head{align-items:flex-start;flex-direction:column;gap:12px}.section{margin-top:36px;padding-top:40px}.project-row{grid-template-columns:24px 1fr 20px;gap:10px 14px;padding:24px 0}.project-row p{grid-column:2;grid-row:2}.row-arrow{grid-column:3;grid-row:1}.row-number{align-self:start;margin-top:4px}.group{padding:16px 0}.closing{align-items:flex-start;flex-direction:column;gap:24px;margin-top:48px}}
@media(max-width:600px){html{scroll-padding-top:88px}.wrap{padding-inline:24px}.nav{height:68px}.brand{font-size:var(--type-body);gap:10px}.brand>span:last-child{display:none}.mark{width:30px;height:30px;border-radius:8px}.nav-links{font-size:0.75rem;gap:18px}.hero{padding:48px 0 52px}.hero h1{font-size:clamp(1.75rem,7.8vw,2.25rem);letter-spacing:-1px;margin:16px 0 20px}.intro{font-size:var(--type-body);line-height:1.9;margin-bottom:28px}.actions{gap:12px 22px}.button,.text-link{font-size:var(--type-caption)}.section-head h2{font-size:1.6875rem}.section-head{margin-bottom:28px}.feature-body{padding:24px}.feature-body h3{font-size:1.4375rem}.project-description{font-size:0.9375rem}.art-caption{padding:10px 14px}.project-row h3{font-size:var(--type-body)}.capability h3,.group h3{font-size:1.375rem}.closing h2{font-size:1.5625rem}.closing .button{width:100%}footer{font-size:0.625rem;align-items:flex-start}.footer-notice{max-width:none}.footer-notice strong{font-size:0.6875rem}.footer-notice span{max-width:none}#image-viewer{padding:14px}.viewer-head h2{font-size:var(--type-body)}}
@media(max-width:360px){.wrap{padding-inline:20px}.nav-links{gap:14px}.feature-body{padding:20px}.hero h1{font-size:1.75rem}.actions{align-items:flex-start;flex-direction:column;gap:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Final hierarchy and interaction refinement, without increasing initial density. */
.hero{max-width:880px;padding-top:72px;padding-bottom:72px}.hero h1{margin:20px 0 24px;line-height:1.45}.hero-name{font-size:1.18em;letter-spacing:-1.5px}.hero-role{font-size:.8em;letter-spacing:-1px}.intro{max-width:42em;font-size:1.0625rem;line-height:1.9}.featured-grid{align-items:stretch}.featured{display:flex;flex-direction:column}.feature-body{display:flex;flex-direction:column;flex:1;padding:28px}.project-description{margin-bottom:18px;min-height:58px}.project-overview{margin-bottom:20px}.project-overview summary{font-size:var(--type-caption);cursor:pointer;min-height:44px;padding:9px 0;color:var(--muted)}.project-overview[open]{border-top:1px solid var(--line);padding-top:8px;margin-top:8px}.project-overview dl{display:grid;gap:16px;margin:16px 0 24px}.project-overview dl>div{display:grid;grid-template-columns:36px minmax(0,1fr);gap:12px}.project-overview dt{font-size:0.75rem;font-weight:700;color:var(--muted)}.project-overview dd{font-size:var(--type-small);line-height:1.85;word-break:keep-all;overflow-wrap:break-word;margin:0}.project-actions{margin-top:auto;border-top:1px solid var(--line);padding-top:12px}.art-caption{font-size:0.6875rem;padding:10px 18px}.capabilities,.groups{gap:36px}.section-head{margin-bottom:36px}.section-index{letter-spacing:.4px}.featured{transition:box-shadow .18s,border-color .18s}.featured:focus-within{border-color:#79976a}.viewer-canvas{scrollbar-gutter:stable}.nav-links a[aria-current="location"]{color:var(--ink);text-decoration:underline;text-underline-offset:7px;text-decoration-thickness:2px}.nav-links a{color:var(--muted)}.nav-links .nav-external{color:var(--ink)}
@media(hover:hover){.featured:hover{border-color:#b6c9aa;box-shadow:0 12px 30px #163b3207}}
@media(max-width:760px){.hero{padding:56px 0}.project-description{min-height:0}.capabilities,.groups{gap:24px}.section-head{margin-bottom:28px}}
@media(max-width:600px){.hero{padding:48px 0 52px}.hero h1{margin:16px 0 22px}.hero-role{font-size:.78em;letter-spacing:-.65px}.hero-name{font-size:1.18em}.intro{font-size:var(--type-body)}.feature-body{padding:24px}.art-caption{padding:10px 14px}.project-overview dd{font-size:var(--type-small)}.project-actions{gap:8px 24px}.section{padding-top:40px}.closing h2{line-height:1.6}}
@media(max-width:360px){.feature-body{padding:20px}}
@media(prefers-reduced-motion:reduce){.featured{transition:none}}

/* Result-first landing, resilient media and comfortable reading. */
.feature-art{position:relative}.image-status{display:none}.image-loading .image-status{display:block;position:absolute;left:18px;bottom:48px;font-size:0.75rem;color:var(--ink);background:var(--paper);padding:6px 10px;border-radius:5px;z-index:2}.image-failed .art-fallback{display:block}.image-failed .art-caption{opacity:.7}.workflow .project-description strong:first-child{font-size:1.4375rem;letter-spacing:-.4px}.project-description{max-width:35em;line-height:1.95;text-wrap:pretty}.product-cta{color:var(--ink);text-decoration:underline;text-underline-offset:5px}.section-head>p{max-width:28em;line-height:1.8}.intro{line-height:1.95}.feature-body h3{line-height:1.6}.project-row p{max-width:38em}.project-overview summary{color:var(--ink)}#viewer-detail,#viewer-source{display:inline-flex;align-items:center;min-height:44px;margin-right:24px;font-size:var(--type-small);text-decoration:underline;text-underline-offset:5px}#viewer-loading{font-size:var(--type-small);color:var(--muted);margin:0 0 14px}.image-failed .art-fallback p{font-size:var(--type-small);color:var(--muted)}
@media(max-width:600px){.workflow .project-description strong:first-child{font-size:1.3125rem}.image-loading .image-status{left:14px}.section-head>p{font-size:var(--type-small)}#viewer-detail,#viewer-source{font-size:var(--type-caption);margin-right:14px}}
/* A clear role, one sentence, and distinct result types. */
.project-role{font-size:0.75rem;font-weight:600;color:#536e45;line-height:1.8;margin:0 0 14px}.project-description{margin-bottom:18px}.result-item{display:block;margin-bottom:10px;line-height:1.9}.result-category{display:block;font-size:0.6875rem;font-weight:600;color:var(--muted);margin-bottom:2px}.workflow .project-description strong:first-child{font-size:inherit}.workflow .result-item:first-child strong{font-size:var(--type-heading)}.source-overview{font-size:var(--type-small);line-height:1.9;white-space:pre-line;color:var(--muted);word-break:keep-all}.row-summary{min-width:0}.row-more,.row-details summary{font-size:0.75rem;color:var(--muted);min-height:36px;cursor:pointer;display:list-item;padding:5px 0}.row-details{margin-top:6px}.row-details[open]>p{padding:12px 0 0;line-height:1.9}.row-arrow{min-height:44px;display:inline-flex;align-items:center;justify-content:flex-end}.project-row:hover{background:transparent}.project-row h3 a:hover{text-decoration:underline;text-underline-offset:4px}.row-summary p{font-size:var(--type-small)}.row-details:focus-within{outline-offset:4px}
@media(max-width:760px){.row-summary{grid-column:2;grid-row:2}.workflow .result-item:first-child strong{font-size:1.375rem}.project-role{font-size:0.75rem}}
.detail-notice{font-size:var(--type-small);color:var(--muted);line-height:1.85;margin:16px 0}.detail-fallback{display:inline-flex;align-items:center;min-height:44px;font-size:var(--type-small);text-decoration:underline;text-underline-offset:4px}

.featured .project-description{overflow-wrap:anywhere}.more-projects .text-link{min-height:44px;display:inline-flex;align-items:center}

.project-role{font-size:var(--type-caption);line-height:1.9;word-break:keep-all;overflow-wrap:anywhere;text-wrap:pretty}.feature-body{min-width:0}.feature-body h3{word-break:keep-all;overflow-wrap:anywhere}
@media(max-width:600px){.project-role{font-size:var(--type-caption);line-height:1.95}.project-actions{flex-wrap:wrap}.feature-kicker{word-break:keep-all;overflow-wrap:anywhere}}

/* Visual hierarchy shared by the common and role-specific pages. */
.hero-role{font-size:.9em;line-height:1.5}.result-category,.art-caption,.section-index{font-size:0.75rem}.feature-kicker{font-size:var(--type-caption)}
.feature-art img{width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;background:#eef3e8}.feature-body h3{min-height:3.2em}.project-role{min-height:3.8em}.featured .result-item:first-child strong{font-size:var(--type-heading);line-height:1.5;letter-spacing:-.4px}.featured .result-item:not(:first-child) strong{font-size:inherit}
#experience .section-head h2{font-size:1.625rem}.group h3{margin-bottom:10px}.group h3 a{font-size:1.125rem;line-height:1.6;min-height:0;margin-top:0}.group p{font-size:var(--type-small);margin-bottom:12px}.group>a{font-size:var(--type-caption)}.groups{gap:28px}
@media(max-width:760px){.feature-body h3,.project-role{min-height:0}.featured .result-item:first-child strong{font-size:1.375rem}.hero-role{font-size:.88em}}
@media(max-width:600px){.hero-role{font-size:.88em;letter-spacing:-.6px}.result-category,.art-caption{font-size:0.75rem}.feature-kicker{font-size:0.75rem}#experience .section-head h2{font-size:var(--type-heading)}.group h3 a{font-size:1.125rem}.feature-body h3{margin-bottom:14px}}

/* Visual QA: readable mobile flows, resettable viewer and aligned AI cards. */
.keep-together{white-space:nowrap}
.feature-art picture{display:block}
.viewer-controls{margin-bottom:12px}
.viewer-modes{display:flex;gap:8px}
.viewer-modes button{min-height:44px;padding:8px 16px;border:1px solid #aabb9f;border-radius:6px;background:white;color:var(--ink);cursor:pointer}
.viewer-modes button[aria-pressed="true"]{background:var(--ink);color:white;border-color:var(--ink)}
.viewer-hint{font-size:var(--type-caption);color:var(--muted);margin:8px 0 0}
#image-viewer .viewer-canvas{max-height:60dvh;scroll-behavior:auto}
#image-viewer .viewer-canvas img{min-width:0}
#image-viewer[data-view="zoom"] .viewer-canvas img{min-width:960px}
@media(min-width:761px){
 body[data-profile="ai-service"] .project-summary .detail-notice:last-child{margin-bottom:20px}
}

@media(max-width:760px){
 .feature-art picture img{aspect-ratio:auto}
 #experience .groups{gap:8px}
 #experience .group{padding:10px 0}
 #experience .group h3{margin-bottom:6px}
 #experience .group p{margin-bottom:6px}
}
@media(min-width:761px){body[data-profile="ai-service"] .mosigo .project-description{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}body[data-profile="ai-service"] .mosigo .result-item{margin-bottom:0}body[data-profile="ai-service"] .project-summary .detail-notice{margin-top:12px}}

/* PC-only source evidence and experience context. */
.pc-only{display:none}
@media(min-width:761px){
 .pc-only{display:block}
 .project-evidence{border-top:1px solid var(--line);padding-top:16px;margin:18px 0 22px}
 .project-evidence dl{display:grid;gap:16px;margin:0}
 .project-evidence dl>div{display:block}
 .project-evidence dt{font-size:0.75rem;font-weight:700;color:#536e45;margin-bottom:5px}
 .project-evidence dd{font-size:var(--type-small);line-height:1.85;margin:0;word-break:keep-all;overflow-wrap:break-word}
 .evidence-links{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:10px}
 .evidence-links a{display:inline-flex;align-items:center;min-height:44px;font-size:0.75rem;text-decoration:underline;text-underline-offset:4px}
 .experience-context{font-size:var(--type-small);line-height:1.85;margin-top:10px;color:var(--ink)}
 body[data-profile="ai-service"] .project-summary .scope-copy{margin:12px 0 20px}
}

@media(min-width:761px){body[data-profile]:not([data-profile="common"]) .feature-body h3,body[data-profile]:not([data-profile="common"]) .project-role{min-height:0}body[data-profile]:not([data-profile="common"]) .project-overview{margin-top:0}body[data-profile]:not([data-profile="common"]) .project-overview[open]{padding-top:0}body[data-profile]:not([data-profile="common"]) .project-actions{margin-top:0}}


/* QA 2026-10-07: PC evidence next to claims, mobile breakpoints preserved. */
@media(min-width:761px){body[data-profile]:not([data-profile="common"]) .hero{padding-top:48px;padding-bottom:48px}.hero-evidence{display:flex;gap:16px;margin-top:22px}.hero-evidence a{flex:1;border-left:3px solid #6d845f;padding:8px 14px;font-size:var(--type-small);line-height:1.7}.qa-scope{font-size:var(--type-caption);line-height:1.8;color:#53614b;margin:0 0 18px}.qa-scope .evidence-links{margin-top:8px}}


/* Role landing typography QA 01-10: preserve source claims and compact card layout. */
.hero-name{font-weight:700}
.result-category,.art-caption,.section-index{font-size:var(--type-caption)}
.feature-kicker,.project-role{font-size:var(--type-small)}
.feature-body h3,.featured .project-description,.project-role,.feature-kicker{word-break:keep-all;overflow-wrap:break-word}
@media(min-width:761px){
 body[data-profile="ai-service"] .mosigo .project-description{display:block;max-width:35em}
 body[data-profile="ai-service"] .mosigo .result-item{display:block;margin-bottom:12px}
 .qa-scope{font-size:var(--type-small);line-height:1.85}
 .qa-scope .scope-parts{display:grid;gap:7px}
 .qa-scope .scope-item{display:grid;grid-template-columns:82px minmax(0,1fr);gap:12px;align-items:start}
 .qa-scope .scope-label{font-size:0.75rem;font-weight:700;color:var(--ink)}
 .qa-scope .scope-text{min-width:0;word-break:keep-all;overflow-wrap:break-word}
 .project-evidence{padding-top:18px}
 .project-evidence dl{gap:20px}
 .project-evidence dl>div{padding-left:14px;border-left:2px solid #dce5d7}
 .project-evidence dt{font-size:var(--type-caption)}
 .project-evidence dd{font-size:var(--type-small);line-height:1.95;max-width:58ch}
}
@media(max-width:600px){
 .nav{gap:12px}
 .nav-links{font-size:var(--type-caption);gap:12px}
 footer{font-size:0.75rem}
 .footer-notice strong,footer a{font-size:0.75rem}
 .footer-notice span{line-height:1.8}
 .result-category,.art-caption{font-size:var(--type-caption)}
 .feature-kicker{font-size:var(--type-caption)}
}
@media(max-width:360px){.wrap{padding-inline:12px}.nav-links{gap:10px}}

/* Typography QA 2026-10-09: improve readability of secondary evidence and legal copy. */
footer,.footer-notice strong,footer a{font-size:var(--type-caption)}
#experience .group>a{font-size:var(--type-small)}
@media(min-width:761px){
 .qa-scope .scope-label{font-size:var(--type-caption)}
 .evidence-links a{font-size:var(--type-small)}
}

/* Text-only 200% resize: let mobile navigation wrap without overlapping. */
@media(max-width:600px){
 .header{position:static}
 .nav{height:auto;min-height:68px;flex-wrap:wrap;padding-block:10px}
 .brand{flex-shrink:0}
 .nav-links{flex:1 1 170px;min-width:0;flex-wrap:wrap;justify-content:space-between;column-gap:12px;row-gap:0}
}

/* Typography QA: root-scale reflow without fixed-height clipping. */
.nav{height:auto;min-height:80px;flex-wrap:wrap;padding-block:12px}
.nav-links{min-width:0;flex-wrap:wrap;gap:8px 28px}
.art-caption>span{white-space:normal}
footer{flex-wrap:wrap}
.footer-notice{min-width:0}
footer a{white-space:normal;overflow-wrap:anywhere}
.hero-evidence a{min-width:0;overflow-wrap:anywhere}
@media(max-width:1000px){.header{position:static}.nav-links{gap:8px 20px}}
@media(max-width:600px){.nav{min-height:68px;padding-block:10px}.nav-links{column-gap:12px}}

/* Dynamic Notion headings: allow min-content wrapping at enlarged text sizes. */
.feature-body h3,.feature-body h3 a,.project-role,.featured .project-description,.result-item,.source-overview{overflow-wrap:anywhere}
.feature-body h3 a{min-width:0}

/* Independent role submissions: evidence is essential on mobile, not PC-only. */
.role-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-top:18px;background:#fff}
.role-steps span{min-width:0;padding:13px 15px;font-size:var(--type-small);line-height:1.6;overflow-wrap:anywhere}
.role-steps span+span{border-left:1px solid var(--line)}
.role-steps b{display:block;color:#536e45;font-size:var(--type-caption);margin-bottom:3px}
@media(max-width:760px){
 .pc-only.hero-evidence{display:grid;grid-template-columns:1fr;gap:6px;margin-top:15px}
 .hero-evidence a{display:block;min-width:0;border-left:3px solid #6d845f;padding:6px 10px;font-size:var(--type-caption);line-height:1.6}
 .pc-only.qa-scope,.pc-only.project-evidence,.pc-only.experience-context,.pc-only.detail-notice{display:block}
 .qa-scope{margin:5px 0 16px;color:#53614b;font-size:var(--type-caption);line-height:1.7}
 .qa-scope .scope-parts{display:grid;gap:6px}
 .qa-scope .scope-item{display:grid;grid-template-columns:minmax(68px,25%) minmax(0,1fr);gap:10px}
 .qa-scope .scope-label{font-size:var(--type-caption);font-weight:700;color:var(--ink)}
 .qa-scope .scope-text{min-width:0;overflow-wrap:anywhere}
 .project-evidence{border-top:1px solid var(--line);padding-top:12px;margin:14px 0}
 .project-evidence dl{display:grid;gap:10px;margin:0}
 .project-evidence dt{font-size:var(--type-caption);font-weight:700;color:#536e45}
 .project-evidence dd{font-size:var(--type-caption);line-height:1.75;margin:3px 0 0;overflow-wrap:anywhere}
 .project-evidence a{display:inline-flex;min-height:44px;align-items:center;font-size:var(--type-caption);text-decoration:underline}
 .experience-context{font-size:var(--type-caption);margin-top:8px;line-height:1.75}
 .role-steps{grid-template-columns:1fr;margin-top:14px}
 .role-steps span{display:grid;grid-template-columns:68px minmax(0,1fr);gap:6px;padding:8px 12px;font-size:var(--type-caption)}
 .role-steps span+span{border-left:0;border-top:1px solid var(--line)}
 .role-steps b{margin:0}
}

/* H0/H1: HR scan hierarchy: key contribution first, scale qualifiers beside it. */
.hr-signal{padding:16px 18px 15px;border:1px solid #dbe6d5;border-left:4px solid #648b53;background:#f6f9f2;border-radius:8px;margin:0 0 18px;min-width:0}
.hr-signal p{margin:0;overflow-wrap:anywhere;word-break:keep-all}
.hr-signal-overline{font-size:var(--type-caption);color:#3d6740;font-weight:700;letter-spacing:.015em}
.hr-signal-lead{margin-top:5px!important;line-height:1.6;font-size:1.0625rem;color:var(--ink)}
.hr-signal-lead strong{font-weight:750}
.hr-signal-contribution,.hr-signal-scope{font-size:var(--type-caption);line-height:1.7;margin-top:9px!important;color:#354d3f}
.hr-signal-scope{font-size:var(--type-caption);color:#546653}
.hr-signal-contribution span,.hr-signal-scope span{display:inline-block;font-weight:700;color:var(--ink);margin-right:9px}
body[data-profile]:not([data-profile="common"]) .featured .project-description strong{font-size:inherit;font-weight:500;letter-spacing:inherit}
body[data-profile]:not([data-profile="common"]) .project-description{color:#4e5e55}
@media(max-width:760px){.hr-signal{padding:13px 14px;margin-bottom:16px}.hr-signal-lead{font-size:var(--type-body)}}
@media(prefers-contrast:more){.hr-signal{border-color:var(--ink)}.hr-signal-overline,.hr-signal-scope{color:var(--ink)}}

/* Firefox 200%-text mobile fix: 1fr uses min-content minimum and can widen
   the whole capabilities grid; minmax(0,1fr) permits actual viewport reflow. */
@media(max-width:760px){
 .capabilities,.groups{grid-template-columns:minmax(0,1fr);min-width:0;max-width:100%}
 .capability{min-width:0;max-width:100%}
 .capability h3,.cap-intro{overflow-wrap:anywhere}
}

/* Recruiter summary cards: prevent one-syllable line endings and clipped labels.
   Full-width cards may span the content container; keep the hero copy readable. */
body[data-profile]:not([data-profile="common"]) .hero{max-width:1104px}
body[data-profile]:not([data-profile="common"]) .hero-copy,
body[data-profile]:not([data-profile="common"]) .hero-evidence{max-width:880px}
.role-steps{min-width:0;max-width:100%;grid-template-columns:repeat(3,minmax(0,1fr))}
.role-steps > span{
 min-width:0;padding:16px 18px;line-height:1.7;
 word-break:keep-all;overflow-wrap:break-word;text-wrap:pretty;
}
@media(min-width:761px) and (max-width:1040px){
 .role-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
 .role-steps > span:last-child{grid-column:1/-1;border-left:0;border-top:1px solid var(--line)}
}
@media(max-width:760px){
 .role-steps{grid-template-columns:minmax(0,1fr)}
 .role-steps > span{display:block;padding:12px 15px;font-size:var(--type-small)}
 .role-steps > span b{display:block;margin:0 0 5px}
}

/* Source-bound STAR process: keep the existing role landing layout and metrics. */
.project-overview .star-story{display:grid;gap:0;margin:14px 0 18px}
.project-overview .star-story>.star-step{display:grid;grid-template-columns:76px minmax(0,1fr);gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.project-overview .star-story dt{font-size:var(--type-small);font-weight:700;line-height:1.75;color:var(--ink);white-space:nowrap}
.project-overview .star-story dd{min-width:0;margin:0;color:#435448;font-size:var(--type-small);line-height:1.85;word-break:keep-all;overflow-wrap:break-word}
.project-overview .source-process{margin:4px 0 12px;border-top:1px dashed var(--line)}
.project-overview .source-process>summary{font-size:var(--type-caption);color:var(--muted)}
@media(max-width:600px){.project-overview .star-story>.star-step{grid-template-columns:minmax(0,1fr);gap:4px;padding:10px 0}.project-overview .star-story dt,.project-overview .star-story dd{font-size:var(--type-caption)}}

/* P1-P3: scan verified results first, then personal contribution and source caveats. */
body[data-profile]:not([data-profile="common"]) .project-summary{padding:0 0 10px;margin:12px 0 14px;border-bottom:1px solid var(--line);min-width:0}
body[data-profile]:not([data-profile="common"]) .project-summary .project-description{margin:0;min-height:0}
.result-eyebrow{font-size:var(--type-caption);font-weight:700;color:#536e45;margin:0 0 8px;letter-spacing:.01em}
body[data-profile]:not([data-profile="common"]) .project-summary .product-scope{margin:10px 0 4px;font-size:var(--type-caption);line-height:1.8}
body[data-profile]:not([data-profile="common"]) .qa-scope{margin-bottom:14px}
#experience .section-head>p{max-width:46ch;word-break:keep-all}
@media(max-width:760px){body[data-profile]:not([data-profile="common"]) .project-summary{margin:10px 0 12px}.result-eyebrow{margin-bottom:6px}}

/* At 200% text size, longer role-specific closing actions wrap instead of widening the page. */
.closing{flex-wrap:wrap}
.closing>div{min-width:0;flex:1 1 270px}
.closing .button{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;text-align:center}
.group,.group p{min-width:0;overflow-wrap:anywhere}

/* AI role landing: compact Case Study decision evidence, not a second portfolio page. */
body[data-profile="ai-service"] .case-study-notes{min-width:0;margin:4px 0 18px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
body[data-profile="ai-service"] .case-study-notes-title{margin:0 0 10px;font-size:var(--type-caption);font-weight:700;color:var(--ink)}
body[data-profile="ai-service"] .case-study-notes dl{display:grid;gap:10px;margin:0}
body[data-profile="ai-service"] .case-study-notes dl>div{display:grid;grid-template-columns:minmax(0,118px) minmax(0,1fr);gap:12px;min-width:0}
body[data-profile="ai-service"] .case-study-notes dt{font-size:var(--type-caption);font-weight:700;color:#425c47;line-height:1.75;overflow-wrap:anywhere}
body[data-profile="ai-service"] .case-study-notes dd{margin:0;min-width:0;font-size:var(--type-small);line-height:1.75;color:#435448;word-break:keep-all;overflow-wrap:anywhere}
body[data-profile="ai-service"] .case-study-notes>a{display:inline-flex;align-items:center;min-height:44px;margin-top:10px;font-size:var(--type-small);text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}
@media(max-width:600px){body[data-profile="ai-service"] .case-study-notes dl>div{grid-template-columns:minmax(0,1fr);gap:3px}body[data-profile="ai-service"] .case-study-notes dd{font-size:var(--type-caption)}}

/* Desktop recruiter pages: preserve centered 1200px shell, reduce card length at 1920x1080. */
.case-study-disclosure{min-width:0;margin:2px 0 10px;border-block:1px solid var(--line)}
.case-study-disclosure>summary{display:list-item;cursor:pointer;min-height:44px;padding:10px 0;font-size:var(--type-small);font-weight:600;line-height:1.6;color:var(--ink);word-break:keep-all;overflow-wrap:anywhere}
.case-study-disclosure .case-study-notes{margin:0!important;border:0!important;padding:8px 0 12px!important}
@media(min-width:1001px){
 body[data-profile]:not([data-profile="common"]) .feature-body{padding:19px 22px 18px}
 body[data-profile]:not([data-profile="common"]) .feature-body h3{min-height:0;margin:5px 0 7px;line-height:1.45}
 body[data-profile]:not([data-profile="common"]) .project-role{min-height:0;margin:0 0 8px;line-height:1.55}
 body[data-profile]:not([data-profile="common"]) .project-summary{margin:7px 0 9px;padding:0 0 8px}
 body[data-profile]:not([data-profile="common"]) .result-eyebrow{margin-bottom:5px}
 body[data-profile]:not([data-profile="common"]) .project-description{line-height:1.6;max-width:none}
 body[data-profile]:not([data-profile="common"]) .project-description .result-item{margin:0 0 6px;line-height:1.6}
 body[data-profile]:not([data-profile="common"]) .project-description .result-item:last-child{margin-bottom:0}
 body[data-profile]:not([data-profile="common"]) .hr-signal{padding:10px 12px;margin-bottom:10px}
 body[data-profile]:not([data-profile="common"]) .hr-signal-lead{line-height:1.45;margin-top:3px!important}
 body[data-profile]:not([data-profile="common"]) .hr-signal-contribution,
 body[data-profile]:not([data-profile="common"]) .hr-signal-scope{line-height:1.5;margin-top:5px!important}
 body[data-profile]:not([data-profile="common"]) .qa-scope{margin:3px 0 9px;line-height:1.55}
 body[data-profile]:not([data-profile="common"]) .project-overview{margin:0 0 7px}
 body[data-profile]:not([data-profile="common"]) .project-actions{gap:4px 15px;padding-top:7px}
 body[data-profile]:not([data-profile="common"]) .project-actions a{min-height:36px;line-height:1.45}
 body[data-profile="ai-service"] .project-summary .product-scope{margin:7px 0 0;line-height:1.55}
 body[data-profile="ai-service"] .mosigo .project-summary .detail-notice{margin:8px 0 0;font-size:var(--type-caption);line-height:1.55}
}

/* Two-column featured row: three concise evidence columns instead of a long vertical stack. */
@media(min-width:1001px){
 body[data-profile]:not([data-profile="common"]) .featured .project-summary .project-description{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:100%;align-items:start
 }
 body[data-profile]:not([data-profile="common"]) .featured .project-summary .result-item{
  display:block;min-width:0;margin:0;line-height:1.55;word-break:keep-all;overflow-wrap:anywhere
 }
 body[data-profile]:not([data-profile="common"]) .featured .project-summary .result-category{
  display:block;font-weight:700;margin-bottom:3px
 }
}


/* 1920px PC QA: retain the existing shell and two-card layout. */
@media(min-width:1001px){
 body[data-profile]:not([data-profile="common"]) .hero{padding-top:32px;padding-bottom:32px}
 body[data-profile]:not([data-profile="common"]) .hero h1{margin:12px 0 16px;line-height:1.3}
 body[data-profile]:not([data-profile="common"]) .intro{margin-bottom:22px}
 body[data-profile]:not([data-profile="common"]) .hero-evidence{margin-top:14px}
 body[data-profile]:not([data-profile="common"]) .role-steps{margin-top:12px}
 body[data-profile]:not([data-profile="common"]) #projects{padding-top:36px}
 body[data-profile]:not([data-profile="common"]) #projects .section-head{margin-bottom:24px}
 body[data-profile]:not([data-profile="common"]) .feature-body{padding:22px 24px}
 body[data-profile]:not([data-profile="common"]) .hr-signal{padding:14px 16px}
 body[data-profile]:not([data-profile="common"]) .hr-signal-contribution{font-size:1rem;line-height:1.7;margin-top:8px!important}
 body[data-profile]:not([data-profile="common"]) .hr-signal-scope{font-size:.875rem;line-height:1.65;margin-top:8px!important}
 body[data-profile]:not([data-profile="common"]) .project-description{font-size:1rem}
 body[data-profile]:not([data-profile="common"]) .featured .project-description strong{font-size:1.5rem;font-weight:700;line-height:1.4}
 body[data-profile]:not([data-profile="common"]) .qa-scope{font-size:.875rem;line-height:1.65}
 body[data-profile]:not([data-profile="common"]) .project-actions a{min-height:44px;font-size:.9375rem}
 body[data-profile]:not([data-profile="common"]) .project-overview>summary{font-size:.9375rem;font-weight:600}
 body[data-profile]:not([data-profile="common"]) .project-actions .product-cta{padding:9px 14px;border-radius:6px;background:var(--ink);color:white;text-decoration:none}
 body[data-profile]:not([data-profile="common"]) #experience .group p{font-size:1rem;line-height:1.8;max-width:30ch}
 body[data-profile]:not([data-profile="common"]) .role-evidence{margin:0 0 24px;padding:18px 22px;border-left:3px solid #648b53;background:#eef3e8;border-radius:6px}
 .role-evidence strong{display:block;font-size:1rem}
 .role-evidence p{margin:6px 0;font-size:.9375rem;line-height:1.75;max-width:80ch}
 .role-evidence a{display:inline-flex;align-items:center;min-height:44px;font-size:.9375rem;text-decoration:underline;text-underline-offset:4px}
}
.link-destination{margin-left:8px;font-size:.8125rem;color:var(--muted);font-weight:400}

/* AI scope is already stated in the result row; avoid oversized repeated notes. */
@media(min-width:1001px){
 body[data-profile="ai-service"]:not([data-profile="common"]) .hr-signal{padding:10px 14px}
 body[data-profile="ai-service"]:not([data-profile="common"]) .feature-body{padding-block:18px}
 body[data-profile="ai-service"]:not([data-profile="common"]) .project-actions{column-gap:12px}
 body[data-profile="ai-service"]:not([data-profile="common"]) .project-role{display:none}
}

/* Role submission: identify the project and result before its explanatory diagram. */
body[data-profile]:not([data-profile="common"]) .feature-body>.feature-art{margin:8px 0 14px;border:1px solid var(--line);border-radius:7px;overflow:hidden}
body[data-profile]:not([data-profile="common"]) .project-role{display:none}
body[data-profile]:not([data-profile="common"]) .feature-body h3{text-wrap:pretty}
body[data-profile]:not([data-profile="common"]) .hero-copy{max-width:100%}
.project-overview .artifact-preview{margin:12px 0 22px;padding:16px;background:#f6f8f2;border:1px solid var(--line);border-radius:7px}
.artifact-preview figcaption>span{display:block;font-size:.8125rem;color:var(--muted)}
.artifact-preview figcaption>strong{display:block;font-size:1rem;margin-top:4px}
.project-overview .artifact-preview dl{margin:12px 0;gap:0}
.project-overview .artifact-preview dl>div{grid-template-columns:minmax(0,90px) minmax(0,1fr);padding:10px 0;gap:12px;border-bottom:1px solid var(--line)}
.project-overview .artifact-preview dt{font-size:.875rem;line-height:1.7;color:var(--ink);white-space:normal}
.project-overview .artifact-preview dd{font-size:.9375rem;line-height:1.75}
.artifact-preview>a{display:inline-flex;align-items:center;min-height:44px;font-size:.875rem;text-decoration:underline;text-underline-offset:4px}
.artifact-preview .artifact-image{display:block;margin-top:12px}
.artifact-image img{display:block;width:100%;height:auto;background:white;border:1px solid var(--line)}
.artifact-image span{display:block;padding-block:8px;font-size:.875rem}
.artifact-image.image-unavailable img{display:none}
@media(min-width:1001px){
 body[data-profile]:not([data-profile="common"]) .hero{padding-bottom:24px}
 body[data-profile]:not([data-profile="common"]) .featured .project-description .result-item:not(:first-child) strong{font-size:1.25rem}
 body[data-profile="ai-service"] .featured .project-description .result-item strong{font-size:inherit;font-weight:400}
 body[data-profile]:not([data-profile="common"]) .feature-body>.feature-art .art-caption{padding:7px 12px}
}
@media(max-width:600px){.project-overview .artifact-preview dl>div{grid-template-columns:minmax(0,1fr);gap:3px}.project-overview .artifact-preview{padding:12px}}

/* Trim unused diagram margins at the original text scale, without cropping content. */
@media(min-width:1001px){body[data-profile="ai-service"] .feature-body>.feature-art img{aspect-ratio:auto}}

@media(min-width:1001px){body[data-profile="ai-service"]:not([data-profile="common"]) .feature-body h3{font-size:1.375rem;line-height:1.4}}
@media(min-width:1001px){
 body[data-profile="ai-service"]:not([data-profile="common"]) .feature-body{padding-block:16px}
 body[data-profile="ai-service"]:not([data-profile="common"]) .feature-body>.feature-art{margin-block:4px}
}

/* Design QA: neutral explanatory graphics; pale green is reserved for key decisions. */
body[data-profile]:not([data-profile="common"]) .feature-body>.feature-art{background:#f3f5f2;border:0;border-radius:6px}
body[data-profile]:not([data-profile="common"]) .feature-body>.feature-art img{aspect-ratio:auto;background:#f3f5f2}
body[data-profile]:not([data-profile="common"]) .feature-body>.feature-art .art-caption{background:#f3f5f2;color:#4e6256}
body[data-profile]:not([data-profile="common"]) .hr-signal{border:0;border-left:3px solid #648b53;background:#f2f7ed}
body[data-profile]:not([data-profile="common"]) .role-evidence{background:#f1f3f0;border-left-color:#849189}
body[data-profile]:not([data-profile="common"]) .qa-scope,
body[data-profile]:not([data-profile="common"]) .qa-scope .scope-label{color:#59635c}
.project-overview .artifact-preview{background:#f4f5f3;border:0;border-left:2px solid #a7b4aa}
@media(min-width:1200px){
 body[data-profile]:not([data-profile="common"]) .feature-body>h3{min-height:var(--card-title-height,0px)}
 body[data-profile]:not([data-profile="common"]) .feature-body>.project-summary{min-height:var(--card-results-height,0px)}
 body[data-profile]:not([data-profile="common"]) .feature-body>.hr-signal{min-height:var(--card-judgment-height,0px)}
 body[data-profile]:not([data-profile="common"]) .feature-body>.qa-scope{min-height:var(--card-scope-height,0px)}
 body[data-profile]:not([data-profile="common"]) .feature-body>.project-actions{min-height:var(--card-actions-height,0px);margin-top:auto}
}
