/* BNDJAY public portfolio — original responsive typography and visual treatment.
   Only approved anonymized content and wholly synthetic graphic reconstructions. */
:root{--pf-dark:#0f211b;--pf-deep:#0b1b16;--pf-lime:#c4f488;--pf-cream:#f3f5ee;--pf-muted:#65806d;--pf-ink:#162d22}
.pf-body{margin:0;background:var(--pf-dark);color:#f4f7f1;font-family:Manrope,"Noto Sans KR","DM Sans",system-ui,-apple-system,sans-serif}
.pf-body *{box-sizing:border-box}.pf-body a{color:inherit;text-decoration:none}.pf-body a:focus-visible,.pf-body button:focus-visible{outline:3px solid var(--pf-lime);outline-offset:4px}
.pf-skip{position:absolute;left:12px;top:-120px;z-index:30;background:var(--pf-lime);color:#12261c!important;padding:12px}.pf-skip:focus{top:12px}
.pf-wrap{max-width:1160px;width:calc(100% - 52px);margin:0 auto}
.pf-topline{min-height:26px;background:var(--pf-lime);color:#244126;padding:6px max(calc((100% - 1160px)/2),26px);display:flex;justify-content:space-between;gap:12px;font:800 9px "DM Mono",ui-monospace,monospace;letter-spacing:.08em}
.pf-header{border-bottom:1px solid #3e5842;background:var(--pf-dark)}.pf-head-inner{min-height:84px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.pf-brand{display:flex;align-items:center;font-size:27px;letter-spacing:-.08em;font-weight:850;white-space:nowrap}.pf-brand>span:last-child{color:var(--pf-lime)}.pf-mark{display:inline-grid;place-items:center;color:var(--pf-lime);font-size:26px;letter-spacing:0;margin-right:12px}
.pf-nav{display:flex;align-items:center;gap:31px;font-size:12px;font-weight:760}.pf-nav a{color:#a3b8aa;transition:color .2s}.pf-nav a:hover,.pf-nav a.current{color:var(--pf-lime)}
.pf-lang{display:flex;gap:8px;align-items:center;white-space:nowrap;font:800 11px "DM Mono",ui-monospace,monospace;color:#73877a}.pf-lang a{color:#71897c}.pf-lang a[aria-current="page"]{color:var(--pf-lime)}
.pf-eyebrow,.pf-num{font:800 10px "DM Mono",ui-monospace,monospace;letter-spacing:.1em;color:var(--pf-lime);display:inline-flex;align-items:center;gap:9px}
.pf-eyebrow i{width:7px;height:7px;background:var(--pf-lime);border-radius:50%}.pf-hero{min-height:570px;overflow:hidden;border-bottom:1px solid #274435}
.pf-hero-grid{min-height:570px;display:grid;grid-template-columns:1.14fr .86fr;gap:35px;align-items:center;padding:75px 0 65px}
.pf-hero h1{font-size:clamp(51px,6.3vw,88px);letter-spacing:-.08em;line-height:1.1;margin:28px 0 27px;font-weight:850;word-break:keep-all}.pf-hero h1 em{font-style:normal;color:var(--pf-lime)}
.pf-hero p{font-size:14px;line-height:1.95;max-width:520px;color:#b0c7b7;word-break:keep-all}
.pf-primary{display:inline-flex;align-items:center;justify-content:space-between;gap:25px;padding:17px 24px;background:var(--pf-lime);color:#153123!important;font-weight:850;font-size:12px;min-width:200px;margin-top:27px;transition:background .2s,transform .2s}
.pf-primary:hover{background:#dafba7;transform:translateY(-2px)}
.pf-hero-graphic{position:relative;height:405px;display:grid;place-items:center}.pf-ring{position:absolute;aspect-ratio:1;border:1px solid #57795768;border-radius:50%}.pf-ring-a{width:370px}.pf-ring-b{width:290px}.pf-ring-c{width:220px;background:radial-gradient(circle,#35574144 0%,transparent 70%)}
.pf-hero-center{width:153px;aspect-ratio:1;background:var(--pf-lime);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#1f4029;font-size:99px;line-height:1;font-weight:850;box-shadow:0 0 35px #8ec95f40}.pf-hero-center small{font:800 8px "DM Mono",ui-monospace,monospace;letter-spacing:.12em;margin-top:5px}
.pf-projects{background:var(--pf-cream);color:var(--pf-ink);padding:112px 0}.pf-section-head{margin-bottom:43px}.pf-section-head .pf-eyebrow{color:#568054}.pf-section-head h2{font-size:clamp(35px,4vw,54px);font-weight:850;letter-spacing:-.065em;line-height:1.17;margin:13px 0}
.pf-section-head p{color:#607660;font-size:13px;line-height:1.8;max-width:650px}.pf-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px}
.pf-card{display:flex;flex-direction:column;border:1px solid #cfdacb;background:#fff;overflow:hidden;min-height:375px;transition:transform .2s,box-shadow .2s,border-color .2s;color:var(--pf-ink)!important}.pf-card:hover{transform:translateY(-4px);border-color:#89a882;box-shadow:0 13px 27px #23432523}
.pf-card-visual{overflow:hidden;aspect-ratio:1200/720;background:#172f23}.pf-card img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s}.pf-card:hover img{transform:scale(1.035)}
.pf-card-body{padding:22px 21px;display:flex;flex-direction:column;flex:1}.pf-card-meta{display:flex;justify-content:space-between;gap:9px;color:#6b8b6c;font:800 8px "DM Mono",ui-monospace,monospace;letter-spacing:.03em}.pf-card-meta span:last-child{text-align:right}
.pf-card h3{font-size:21px;line-height:1.3;letter-spacing:-.055em;margin:22px 0 12px;font-weight:850;word-break:keep-all}.pf-card p{font-size:12px;line-height:1.85;color:#667b68;margin:0 0 24px;flex:1;word-break:keep-all}
.pf-card-link{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #d9e2d6;padding-top:16px;color:#3f6941;font:800 10px "DM Mono",ui-monospace,monospace}
.pf-reconstruction-note{font-size:11px;color:#657c62;margin:35px 0 0;line-height:1.75}
.pf-cta{padding:110px 0 120px;background:#12291e}.pf-cta h2{font-size:clamp(38px,5vw,65px);letter-spacing:-.075em;line-height:1.2;margin:18px 0;max-width:690px}
.pf-footer{border-top:1px solid #3f5c47;background:#0b1b16}.pf-foot-top{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:65px 0}.pf-foot-brand{font-size:30px;letter-spacing:-.085em;font-weight:900}.pf-foot-brand span{color:var(--pf-lime)}
.pf-foot-top p{font:800 12px/1.85 "DM Mono",ui-monospace,monospace;color:#a9c9a7}.pf-foot-top>a{font:800 11px "DM Mono",ui-monospace,monospace;color:var(--pf-lime)}
.pf-foot-base{padding:22px 0;border-top:1px solid #314935;display:flex;justify-content:space-between;gap:16px;font:700 10px "DM Mono",ui-monospace,monospace;color:#8da891}.pf-foot-base div{display:flex;gap:22px}
.pf-detail-hero{padding:70px 0 65px}.pf-back{display:inline-block;color:#aad19a!important;font:750 12px "DM Mono",ui-monospace,monospace;padding-bottom:28px}.pf-detail-overline{display:flex;gap:15px;align-items:center;color:#a1c18c;font:800 10px "DM Mono",ui-monospace,monospace;letter-spacing:.06em}
.pf-detail-hero h1{font-size:clamp(37px,5.5vw,75px);font-weight:850;line-height:1.15;letter-spacing:-.075em;margin:22px 0;word-break:keep-all}.pf-detail-tagline{font-size:17px;line-height:1.7;color:#b7d4ae;max-width:840px}
.pf-tags{display:flex;flex-wrap:wrap;gap:9px;margin-top:25px}.pf-tags span{display:inline-block;border:1px solid #496b4b;color:#b4d29f;padding:8px 10px;font:750 10px "DM Mono",ui-monospace,monospace}
.pf-detail-image{background:#1a3023;padding:57px 0 68px}.pf-detail-image figure{margin:0}.pf-detail-image img{max-width:100%;display:block;width:100%;height:auto;border:1px solid #637c5c;box-shadow:0 20px 60px #08160e8a}
.pf-detail-image figcaption{text-align:right;font-size:10px;color:#aec3a4;line-height:1.65;margin-top:13px}
.pf-detail-content{background:var(--pf-cream);color:var(--pf-ink);padding:93px 0 103px}.pf-detail-columns{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(220px,.68fr);gap:80px}
.pf-detail-primary article{padding:15px 0 38px;margin-bottom:15px;border-bottom:1px solid #cbdbc6}.pf-detail-primary .pf-num{color:#598459}.pf-detail-primary h2{font-size:clamp(24px,2.6vw,34px);line-height:1.24;letter-spacing:-.06em;margin:13px 0 19px}
.pf-detail-primary p{font-size:14px;line-height:2;color:#506954;max-width:760px;word-break:keep-all}.pf-features{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:0;gap:12px}
.pf-features li{background:#e1edd7;border:1px solid #c4d7b9;color:#375c3b;padding:19px;font-size:13px;line-height:1.7;word-break:keep-all}.pf-features li::before{content:"↗";color:#6e9f53;margin-right:12px}
.pf-detail-primary article.pf-impact{background:#d9ebcb;border:0;padding:28px 30px}.pf-impact p{font-weight:700;color:#335939;font-size:16px}
.pf-aside{align-self:start;padding:30px;background:#e6ede0}.pf-aside>div{border-bottom:1px solid #c8d7c0;padding-bottom:24px;margin-bottom:24px}.pf-aside small{display:block;color:#587856;font:800 10px "DM Mono",ui-monospace,monospace}.pf-aside strong{display:block;margin-top:12px;font-size:16px}.pf-aside .pf-tags span{color:#3c6347;border-color:#b7ceb1}.pf-aside .pf-primary{margin:0;width:100%;min-width:0}
.pf-next{padding:90px 0;border-top:1px solid #31553c}.pf-next a:not(.pf-back){display:flex;justify-content:space-between;align-items:center;gap:25px;border-bottom:1px solid #628064;padding:8px 0 20px}.pf-next h2{font-size:clamp(27px,4.5vw,54px);line-height:1.22;margin:17px 0;letter-spacing:-.06em}.pf-next a>span{font-size:44px;color:var(--pf-lime)}.pf-next .pf-back{padding:30px 0 0}
/* homepage teaser deliberately uses prefixed classes: no collisions with site's current styles */
.pf-home-teaser{background:#ecf3e3;color:var(--pf-ink);padding:100px 0 110px}.pf-home-teaser .pf-eyebrow{color:#507848}
.pf-home-teaser-top{display:flex;align-items:end;justify-content:space-between;gap:45px;margin-bottom:40px}.pf-home-teaser-top h2{font-weight:850;line-height:1.17;letter-spacing:-.07em;font-size:clamp(36px,4vw,56px);margin:13px 0 0}.pf-home-teaser-top p{font-size:13px;line-height:1.85;max-width:320px;color:#617866}
.pf-home-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.pf-home-grid a{background:#fff;display:flex;flex-direction:column;border:1px solid #d0dcc8;color:var(--pf-ink);transition:transform .2s}.pf-home-grid a:hover{transform:translateY(-3px)}
.pf-home-grid img{width:100%;height:auto;aspect-ratio:1200/720;object-fit:cover}.pf-home-grid strong{font-size:17px;padding:17px 18px 6px;letter-spacing:-.04em}.pf-home-grid a>span{font:800 10px "DM Mono",ui-monospace,monospace;color:#588253;padding:8px 18px 18px}
.pf-home-all{display:inline-flex;align-items:center;gap:30px;font-size:13px;font-weight:800;color:#26563b;border-bottom:1px solid #658d65;margin-top:32px;padding-bottom:10px}.pf-home-all span{color:#679c4b}
@media(max-width:1010px){.pf-nav{gap:17px}.pf-hero-grid{grid-template-columns:1fr .65fr}.pf-ring-a{width:290px}.pf-ring-b{width:230px}.pf-ring-c{width:170px}.pf-hero-center{width:120px;font-size:75px}.pf-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pf-detail-columns{gap:35px}}
@media(max-width:680px){.pf-wrap{width:calc(100% - 34px)}.pf-topline span:last-child{display:none}.pf-head-inner{min-height:78px;flex-wrap:wrap;justify-content:center;padding:16px 0;gap:14px}.pf-brand{margin-right:auto}.pf-nav{order:3;width:100%;justify-content:space-between;gap:10px;font-size:11px}.pf-hero-grid{display:flex;flex-direction:column;align-items:stretch;padding:73px 0 35px}.pf-hero-graphic{height:235px}.pf-ring-a{width:225px}.pf-ring-b{width:175px}.pf-ring-c{width:125px}.pf-hero-center{width:100px;font-size:58px}.pf-hero-center small{font-size:6px}.pf-hero h1{font-size:clamp(43px,10.2vw,68px)}.pf-projects{padding:75px 0}.pf-grid{grid-template-columns:1fr}.pf-card{min-height:0}.pf-card-visual{aspect-ratio:1200/720}.pf-detail-columns{grid-template-columns:1fr}.pf-detail-content{padding:60px 0}.pf-features{grid-template-columns:1fr}.pf-foot-top{align-items:start;flex-direction:column;padding:50px 0}.pf-foot-base{flex-direction:column}.pf-detail-image{padding:30px 0}.pf-home-teaser{padding:70px 0}.pf-home-teaser-top{display:block}.pf-home-grid{grid-template-columns:1fr}.pf-home-teaser-top p{margin-top:24px}.pf-detail-hero{padding:45px 0}.pf-detail-overline{flex-wrap:wrap}.pf-cta{padding:75px 0}}
@media(prefers-reduced-motion:reduce){.pf-body *, .pf-body *:before,.pf-body *:after,.pf-home-teaser *,.pf-home-teaser *:before,.pf-home-teaser *:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
