/* Established editorial theme shared across the five Korean portfolio pages. */
.ep-page{--ep-bg:#f6f4ee;--ep-panel:#fff;--ep-text:#202622;--ep-muted:#555f58;--ep-line:#d8ddd5;--ep-accent:#20664f;color-scheme:light;background:#f6f4ee;font-size:17px;line-height:1.85}
.ep-page .ep-wrap{width:min(1240px,calc(100% - 80px))}
.ep-page .ep-nav{padding:14px max(24px,calc((100% - 1240px)/2));background:#f6f4eef5;backdrop-filter:blur(12px)}
.ep-page .ep-brand{letter-spacing:-1px}
.ep-page .ep-kicker{font-size:13px;letter-spacing:.04em;margin:0 0 20px}
.editorial-hero{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.15fr);align-items:center;gap:56px;padding:90px 0 88px}
.ep-page .editorial-hero h1{font-size:clamp(38px,4.4vw,65px);line-height:1.24;letter-spacing:-.065em;text-wrap:balance;max-width:650px;margin-bottom:28px;font-weight:700}
.ep-page .ep-intro{font-size:18px;line-height:1.9;color:#555f58;max-width:640px}
.ep-page .ep-actions{gap:10px}
.ep-page .ep-actions a{border-radius:5px;min-height:48px;padding:12px 20px;font-size:14px;font-weight:600;background:transparent}
.ep-page .ep-actions a:first-child{background:#20664f;color:white;border-color:#20664f}
.ep-page .ep-actions a:hover{background:#e7ede6;color:#174c3b}
.ep-page .ep-actions a:first-child:hover{background:#174c3b;color:white}
.editorial-note{font-size:13px;color:#5b655f;line-height:1.8;margin-top:22px;max-width:760px}
.ep-page .ep-figure{border-radius:10px;background:white;border-color:#d8ddd5;box-shadow:0 10px 30px #24372a05}
.ep-page .ep-image{padding:0;background:#eef0ec;min-height:0;overflow:hidden}
.ep-page .ep-image img{display:block;width:100%;max-width:100%;max-height:none;height:auto;object-fit:contain}
.ep-page figcaption{padding:17px 20px}
.ep-page figcaption strong{font-size:15px;margin-bottom:5px}
.ep-page figcaption span{font-size:13px;color:#5b655f}
.ep-page .ep-hint{margin-top:7px;font-size:12px}
.editorial-cover{padding:24px;background:#e7ebe2;border-radius:18px;transform:rotate(1deg)}
.editorial-cover .ep-figure{transform:rotate(-1deg);box-shadow:0 15px 45px #233b2414}
.ep-page .ep-section{padding:76px 0;scroll-margin-top:100px}
.ep-page .ep-section>h2{font-size:clamp(27px,3vw,38px);line-height:1.45;letter-spacing:-.04em;margin-bottom:26px;max-width:920px;font-weight:700}
.ep-page .ep-lead{max-width:780px;font-size:17px;color:#555f58;line-height:1.9;margin:0 0 32px}
.editorial-projects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}
.ep-main .ep-project{display:flex;flex-direction:column-reverse;justify-content:flex-end;gap:24px;background:transparent;border:0;padding:0;border-radius:0;min-width:0}
.ep-main .ep-project>div{padding:0 4px;display:flex;flex-direction:column;flex:1}
.ep-main .ep-project .ep-actions{margin-top:auto;padding-top:16px}
.ep-main .ep-project .ep-figure{border-radius:9px;box-shadow:none}
.ep-main .ep-project .ep-image{height:235px;background:#e7ebe2;padding:10px}
.ep-main .ep-project .ep-image img{width:auto;height:auto;max-height:215px;max-width:100%}
.ep-main .ep-project figcaption{padding:12px 15px}
.ep-main .ep-project figcaption strong{font-size:13px}
.ep-main .ep-project figcaption span{font-size:12px}
.ep-main .ep-project .ep-hint{display:none}
.ep-main .ep-project h3{font-size:25px;letter-spacing:-.03em;margin:0 0 14px}
.ep-main .ep-project p{font-size:15px;margin:0 0 16px;line-height:1.9}
.ep-main .ep-project .case-proof{font-size:13px;color:#466150}
.ep-main .ep-featured{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:50px;padding:32px;background:#e8ede4;border-radius:12px;align-items:center;margin-bottom:20px}
.ep-main .ep-featured>div{display:block;padding:8px}
.ep-main .ep-featured h3{font-size:42px;margin-bottom:12px;letter-spacing:-.05em}
.ep-main .ep-featured .case-tagline{font-size:23px;color:#202622;line-height:1.5}
.ep-main .ep-featured .ep-image{height:auto;padding:0}
.ep-main .ep-featured .ep-image img{width:100%;height:auto;max-height:none}
.ep-main .ep-featured .ep-kicker{color:#20664f}
.ep-main .ep-evidence{gap:32px;align-items:start}
.ep-main #evidence>.ep-evidence>.ep-figure .ep-image{height:330px;padding:14px}
.ep-main #evidence>.ep-evidence>.ep-figure .ep-image img{width:auto;max-height:302px}
.editorial-more,.rl-implementation{margin-top:36px;border-top:1px solid #d8ddd5;border-bottom:1px solid #d8ddd5;padding:15px 0}
.editorial-more summary,.rl-implementation>summary{cursor:pointer;min-height:48px;padding:12px 0;font-size:16px;font-weight:600;color:#20664f}
.editorial-more[open]>.ep-evidence{margin-top:24px}
.story-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px}
.story-columns.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.ep-page .story-columns h3{font-size:21px;margin:0 0 14px;letter-spacing:-.025em}
.story-columns p{font-size:16px;color:#555f58;margin:0;line-height:1.95}
.ep-main .ep-about{grid-template-columns:minmax(0,1fr) 180px;gap:80px}
.ep-main .ep-about .ep-image img{max-height:200px;width:auto}
.ep-page #contact .ep-actions a{background:transparent;border-color:#b8c4b9;color:#20664f}
.ep-page .ep-footer{padding:28px max(24px,calc((100% - 1240px)/2));font-size:13px}
.ep-page .ep-note{border:0;padding:0;font-size:13px}
.rl-story-hero{grid-template-columns:minmax(0,.95fr) minmax(0,1.1fr);gap:52px;align-items:start}
.ep-rolelens .rl-story-hero h1{font-size:clamp(36px,3.8vw,55px)}
.rl-hero-media{padding:22px;background:#e7ebe2;border-radius:14px}
.rl-alert{padding:22px 26px;margin:24px 0 0;background:#fff;border-left:3px solid #20664f;max-width:470px}
.rl-alert-label{font-size:12px;color:#20664f;font-weight:600;margin:0 0 12px}
.rl-alert>strong{display:block;font-size:19px;line-height:1.6;letter-spacing:-.02em}
.rl-alert>p:not(.rl-alert-label){font-size:14px;color:#555f58;line-height:1.9;margin:12px 0}
.rl-alert>span{font-size:12px;color:#626a65}
.story-screens{display:grid;gap:44px}
.rl-screen-pair{display:grid;grid-template-columns:minmax(0,.65fr) minmax(0,1fr);gap:56px;align-items:start}
.rl-screen-pair>.ep-figure{width:min(100%,390px);margin:auto}
.rl-access-story{padding-top:40px}
.ep-rolelens .ep-flow{grid-template-columns:repeat(5,minmax(0,1fr));gap:0;border-top:1px solid #c1cbbf;margin-top:36px}
.ep-rolelens .ep-flow li{padding:25px 18px 10px 0;background:transparent;border:0;border-radius:0;font-size:16px;font-weight:600}
.ep-rolelens .ep-flow span{font-size:12px}
.story-changes{display:grid;gap:0}
.story-changes article{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1fr);column-gap:70px;padding:35px 0;border-bottom:1px solid #d8ddd5}
.story-changes .ep-kicker{grid-column:1/-1;margin-bottom:12px}
.ep-rolelens .story-changes h3{font-size:25px;line-height:1.6;letter-spacing:-.03em;margin:0;grid-row:span 2;max-width:420px}
.story-changes p:not(.ep-kicker){font-size:16px;line-height:1.95;color:#555f58;margin:0 0 16px}
.story-changes .story-result{font-size:14px!important;color:#20664f!important;margin:0!important}
.ep-rolelens .ep-stack{margin:12px 0 30px;font-size:15px}
.ep-rolelens .rl-implementation .ep-section{padding:32px 0;border:0}
.ep-rolelens .rl-implementation h2{font-size:25px}
.ep-page button:focus-visible,.ep-page a:focus-visible,.ep-page summary:focus-visible{outline:3px solid #20664f;outline-offset:4px}
@media(max-width:1000px){.editorial-hero,.rl-story-hero{gap:30px}.editorial-projects{grid-template-columns:1fr 1fr}.ep-main .ep-featured{gap:25px}.story-columns{gap:28px}.ep-rolelens .ep-flow{grid-template-columns:repeat(3,minmax(0,1fr))}.story-changes article{gap:20px 30px}}
@media(max-width:880px){.ep-page .ep-wrap{width:calc(100% - 40px)}.editorial-hero,.rl-story-hero{grid-template-columns:1fr;padding:52px 0 56px;gap:36px}.ep-page .editorial-hero h1{font-size:clamp(36px,6.6vw,55px);max-width:700px}.editorial-cover{transform:none;padding:18px}.editorial-cover .ep-figure{transform:none}.ep-main .ep-featured{grid-template-columns:1fr;padding:22px;gap:24px}.ep-main .ep-featured>div{padding:0}.ep-main .ep-featured .ep-figure{order:-1}.ep-main .ep-featured h3{font-size:34px}.story-columns{grid-template-columns:1fr;gap:30px}.story-columns.two{grid-template-columns:1fr}.rl-screen-pair{gap:30px}.story-changes article{grid-template-columns:1fr}.ep-rolelens .story-changes h3{grid-row:auto;max-width:100%}.ep-main .ep-about{gap:30px;grid-template-columns:1fr 150px}.ep-page .ep-section{padding:50px 0}}
@media(max-width:580px){.editorial-projects{grid-template-columns:1fr;gap:42px}.ep-main .ep-featured{padding:16px;gap:20px;margin:0}.ep-main .ep-project .ep-image{height:245px}.ep-main .ep-project .ep-image img{max-height:225px}.ep-main .ep-featured .ep-image{height:auto}.ep-main .ep-featured .ep-image img{max-height:none}.ep-main .ep-evidence{gap:28px}.ep-main #evidence>.ep-evidence>.ep-figure .ep-image{height:auto;min-height:220px}.ep-main #evidence>.ep-evidence>.ep-figure .ep-image img{width:auto;max-height:360px}.ep-main .ep-about{grid-template-columns:1fr}.ep-main .ep-about>.ep-figure{max-width:180px}.rl-screen-pair{grid-template-columns:1fr}.rl-screen-pair>.ep-figure{max-width:320px}.rl-access-story{padding-top:0}.rl-hero-media{padding:12px}.rl-alert{padding:20px;margin-top:16px}.story-screens{gap:28px}.ep-rolelens .ep-flow{grid-template-columns:1fr}.ep-rolelens .ep-flow li{border-bottom:1px solid #d8ddd5;padding:18px 0;display:flex;gap:18px;align-items:baseline}.ep-rolelens .ep-flow span{margin:0}.ep-rolelens .rl-story-hero h1{font-size:37px}.editorial-note{font-size:13px}.story-changes article{padding:28px 0}.ep-rolelens .story-changes h3{font-size:23px}.ep-main .ep-project>div{padding:0}.ep-main .ep-featured>div{padding:0 4px}.ep-page .ep-intro{font-size:17px}.ep-page .ep-actions a{flex:1 1 145px}.editorial-cover{padding:12px}}

/* Shared detail chrome and source-preserving image previews. */
.ep-page h1{font-family:'Noto Sans KR',sans-serif}
.ep-LINE .ep-image,.ep-threads .ep-image,.ep-trading .ep-image{max-height:460px;align-items:flex-start;overflow:hidden}
.ep-LINE .ep-image img,.ep-threads .ep-image img,.ep-trading .ep-image img{max-height:none;width:100%;height:auto;object-fit:contain}
.ep-source-link{display:inline-flex;align-items:center;min-height:44px;margin-top:6px;font-size:13px;color:#20664f}
.screen-guide{padding:20px 24px;background:#e8ede4;border-radius:8px;margin:0 0 30px;color:#44554a;font-size:14px;line-height:1.85;scroll-margin-top:100px}
.screen-guide p{margin:5px 0}.screen-guide strong{color:#202622}
.ep-media-label{display:block;font-size:12px;font-weight:600;color:#20664f;margin:0 0 10px}
.ep-media-label a{min-height:44px;display:inline-flex;align-items:center}
.rl-hero-media .ep-image{max-height:420px;align-items:flex-start}
.rl-hero-media .ep-image img{width:100%;max-height:none}
.rl-panel-shots{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.85fr);gap:30px;align-items:start}
.rl-panel-shots .ep-figure .ep-image img{width:100%;max-height:none}
.rl-screen-pair>.ep-figure .ep-image{max-height:440px;align-items:flex-start}
.rl-screen-pair>.ep-figure .ep-image img{max-height:none}
@media(max-width:880px){.rl-panel-shots{grid-template-columns:1fr}.ep-LINE .ep-image,.ep-threads .ep-image,.ep-trading .ep-image{max-height:420px}}
@media(max-width:580px){.screen-guide{padding:16px 18px}.rl-hero-media .ep-image{max-height:280px}.rl-screen-pair>.ep-figure .ep-image{max-height:390px}}

.ep-page .ep-about>.ep-figure .ep-image img{width:auto;max-width:100%;max-height:280px}
:root{color-scheme:light}

/* Shared finishing touches: readable mail, plain portrait, full-size image viewer. */
.ep-actions a[href^="mailto:"]{white-space:nowrap;overflow-wrap:normal;word-break:normal;flex-basis:auto}
.ep-profile>img{display:block;width:100%;height:auto;max-height:280px;object-fit:contain}
.ep-profile figcaption{padding:12px 20px}
.implementation>.ep-section{padding:28px 0}.implementation .ep-grid{grid-template-columns:1fr}
.ep-lightbox[open]{display:flex;flex-direction:column;width:min(96vw,1400px);max-width:100vw;height:94dvh;max-height:100dvh;padding:12px;gap:8px;background:#f6f4ee;color:#202622;overflow:hidden}
.ep-view-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex-shrink:0}
.ep-view-controls button,.ep-view-controls a{min-width:44px;min-height:44px;padding:8px 12px;border:1px solid #b6c4b8;border-radius:6px;background:#fff;color:#202622;display:inline-flex;align-items:center;justify-content:center;font-size:14px}
.ep-view-controls .ep-close{position:static;inset:auto}.ep-view-controls a{margin-left:auto}
.ep-lightbox .ep-large{display:block;flex:1;min-height:0;overflow:auto;max-width:100%;touch-action:pan-x pan-y;overscroll-behavior:contain;background:#e8ede4}
.ep-lightbox .ep-large img{display:block;max-width:none!important;max-height:none!important;height:auto!important;margin:0 auto;object-fit:contain}
.ep-lightbox-caption{margin:0;flex-shrink:0;font-size:13px;line-height:1.5}
@media(max-width:580px){.ep-lightbox[open]{width:100vw;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0;padding:8px}.ep-view-controls{gap:5px}.ep-view-controls button,.ep-view-controls a{padding:8px;font-size:13px}.ep-page .ep-actions a[href^="mailto:"]{flex:1 0 100%;width:100%}}
html[lang="ja"] body{font-family:'Noto Sans KR','Yu Gothic',Meiryo,sans-serif}
.ep-profile{width:min(180px,100%)}.ep-profile>img{width:auto;max-width:100%;margin:auto}
/* Japanese punctuation follows natural line-breaking rules. */
html[lang="ja"] body{word-break:normal;overflow-wrap:normal;line-break:strict}
html[lang="ja"] h1,html[lang="ja"] h2,html[lang="ja"] h3{line-break:strict;text-wrap:pretty}
