/*
Theme Name: Neoblocks Connected Gallery
Description: An independent, accessible Korean editorial theme for neoblocks.io. Existing content is preserved.
Version: 1.0.0
Author: NEOKOREA
Text Domain: neoblocks-gallery
License: GPL-2.0-or-later
*/
@font-face{font-family:Pretendard;src:url('assets/pretendard.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
:root{--paper:#faf9f6;--ink:#08251f;--green:#143c30;--muted:#565b58;--line:#dedfd8;--max:1290px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Pretendard,'Noto Sans KR','Malgun Gothic',sans-serif;font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea,select{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #377e6e;outline-offset:5px}img{max-width:100%;height:auto}p,h1,h2,h3,figure{margin:0}h1,h2,h3{line-height:1.25;word-break:keep-all}p{word-break:keep-all;overflow-wrap:anywhere}.ng-skip{position:absolute;left:16px;top:-100px;background:var(--ink);color:white;padding:12px 20px;z-index:999}.ng-skip:focus{top:12px}.ng-header{height:clamp(72px,6.8vw,98px);padding:0 5.2%;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:20}.ng-logo{display:block;width:clamp(104px,9.1vw,132px);height:auto}.ng-brand{display:inline-flex;align-items:center;min-height:44px;flex:none}.ng-main-nav nav,.ng-footer nav{display:flex;align-items:center;gap:clamp(22px,3.1vw,45px)}.ng-main-nav a{font-size:clamp(14px,1.3vw,18px);color:#272b29;min-height:44px;display:inline-flex;align-items:center}.ng-main-nav a:hover,.ng-main-nav a[aria-current]{text-decoration:underline;text-underline-offset:8px}.ng-menu-toggle{display:none}.ng-hero{text-align:center;padding:clamp(54px,5.7vw,82px) 24px clamp(48px,4.5vw,65px)}.ng-hero h1{font-size:clamp(48px,6.05vw,88px);font-weight:580;letter-spacing:-.06em;line-height:1.22}.ng-hero>p{font-size:clamp(18px,2.07vw,30px);color:#292e2b;line-height:1.5;margin-top:clamp(22px,2.2vw,32px);letter-spacing:-.035em}.ng-hero-actions{display:flex;justify-content:center;align-items:center;gap:clamp(30px,3.4vw,49px);margin-top:clamp(28px,3vw,43px)}.ng-button{display:inline-flex;gap:12px;align-items:center;justify-content:center;min-height:48px;padding:10px 32px;font-size:clamp(15px,1.5vw,21px);border:1px solid var(--green);transition:background-color .18s,color .18s}.ng-button-primary{color:var(--paper);background:var(--green);min-height:clamp(48px,4.5vw,65px)}.ng-button-primary .ng-arrow{display:none}.ng-button:hover{background:#245947;color:white}.ng-arrow{width:20px;height:20px;flex:none}.ng-button-outline .ng-arrow,.ng-button:hover .ng-arrow{filter:invert(1)}.ng-text-link{display:inline-flex;align-items:center;gap:14px;font-size:clamp(15px,1.5vw,21px);min-height:48px;color:#3c413e}.ng-text-link:hover{text-decoration:underline;text-underline-offset:6px}.ng-gallery{width:100%;aspect-ratio:1065/490;overflow:hidden}.ng-gallery img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.ng-intro{padding:clamp(48px,4.8vw,69px) 8.3%;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:6%;min-height:clamp(248px,23.3vw,336px)}.ng-intro h2{font-size:clamp(44px,5.35vw,77px);font-weight:570;line-height:1.25;letter-spacing:-.06em}.ng-intro p{font-size:clamp(17px,1.76vw,25px);line-height:1.65;color:#626763;border-left:1px solid var(--line);padding:26px 0 26px 17%;letter-spacing:-.02em}.ng-cta{background:var(--green) url('assets/forest-texture.webp') center/cover;text-align:center;color:var(--paper);padding:clamp(34px,3.5vw,50px) 24px clamp(26px,2.4vw,35px)}.ng-cta h2{font-size:clamp(30px,3.8vw,55px);font-weight:400;letter-spacing:-.025em;margin-bottom:20px}.ng-button-outline{color:var(--paper);border-color:#e2e6dd;min-height:44px;background:transparent;padding:8px 32px}.ng-footer{padding:20px 5.2% 14px}.ng-footer-primary{display:flex;align-items:center;gap:38px;justify-content:space-between}.ng-footer .ng-logo{width:115px}.ng-copyright{font-size:13px;color:#71756f;line-height:1.5;margin-top:2px}.ng-footer nav{gap:28px;font-size:12px;margin-left:auto}.ng-footer nav a{padding:10px 0}.ng-signature{border-top:1px solid #afb6ab;padding-top:9px;letter-spacing:.24em;font-size:10px;color:#727970;white-space:nowrap}.ng-footer-secondary{display:flex;gap:18px;flex-wrap:wrap;justify-content:flex-end;font-size:11px;color:#71756f;margin-top:9px}.ng-footer-secondary a:hover{text-decoration:underline}.ng-page{max-width:var(--max);margin:auto;padding:65px 6% 90px;min-height:55vh}.ng-page-heading{max-width:950px;margin-bottom:50px}.ng-eyebrow{font-size:13px;letter-spacing:.15em;color:#69766b;text-transform:uppercase;margin-bottom:16px}.ng-page h1{font-size:clamp(38px,4.5vw,65px);font-weight:550;letter-spacing:-.045em}.ng-lead{font-size:clamp(19px,1.9vw,25px);color:var(--muted);max-width:800px;line-height:1.65;margin-top:24px}.ng-page h2{font-size:clamp(26px,3vw,40px);font-weight:550;letter-spacing:-.025em}.ng-page h3{font-size:24px;font-weight:550}.ng-rich{max-width:880px;margin:0 auto;color:#38453f}.ng-rich p,.ng-rich ul,.ng-rich ol{margin-bottom:24px}.ng-rich h2,.ng-rich h3{margin:40px 0 22px}.ng-rich a{text-decoration:underline;text-underline-offset:4px}.ng-rich img{height:auto!important;max-width:100%!important}.ng-rich iframe{max-width:100%;border:0}.ng-rich pre{overflow:auto}.ng-rich table{display:block;max-width:100%;overflow:auto}.ng-columns{display:grid;grid-template-columns:1fr 1fr;gap:60px}.ng-columns p{color:var(--muted);margin-top:20px}.ng-projects{display:grid;grid-template-columns:1fr 1fr;gap:55px 35px}.ng-project figure{aspect-ratio:4/3;overflow:hidden;margin-bottom:22px;background:#edece6}.ng-project img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s}.ng-project a:hover img{transform:scale(1.025)}.ng-project p{color:var(--muted);margin-top:12px}.ng-project .ng-text-link{font-size:15px;margin-top:14px}.ng-project-visual{width:100%;max-height:650px;object-fit:contain;background:#edece6;display:block;margin:0 auto 40px}.ng-note{padding:22px 25px;background:#eeeee6;border-left:3px solid #648271;color:#435046;margin:30px 0;font-size:15px}.ng-post-list{display:grid;gap:35px}.ng-post{padding-bottom:35px;border-bottom:1px solid var(--line)}.ng-post p{color:var(--muted);margin:14px 0}.ng-post time{display:block;margin-bottom:10px;color:#728074;font-size:13px}.ng-pagination{margin-top:40px}.ng-pagination .page-numbers{display:inline-block;padding:8px 15px;border:1px solid var(--line);margin-right:6px}.ng-pagination .current{background:var(--green);color:white}.ng-contact-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px}.ng-contact-copy p{margin:20px 0;color:var(--muted)}.ng-form{padding:35px;background:#f0f0e9}.ng-form p{margin:0 0 20px}.ng-form label{display:block;color:var(--ink);font-size:16px}.ng-form input:not([type=submit]):not([type=checkbox]),.ng-form textarea,.ng-form select{display:block;width:100%;margin-top:8px;padding:12px 14px;border:1px solid #aebcaf;background:var(--paper);border-radius:0;color:var(--ink);min-height:48px}.ng-form textarea{min-height:170px;resize:vertical}.ng-form input[type=submit]{border:0;background:var(--green);color:white;padding:12px 28px;min-height:48px;cursor:pointer}.ng-form .wpcf7-not-valid-tip{font-size:14px;margin-top:6px}.ng-form .wpcf7-response-output{margin:20px 0 0;padding:15px;border-width:1px;font-size:15px}.ng-form-privacy{font-size:13px;color:#616d60;margin-top:18px}.ng-form-privacy a{text-decoration:underline}.ng-whitepaper{display:grid;gap:24px;max-width:1000px;margin:30px auto}.ng-whitepaper img{display:block;width:100%;height:auto}.ng-backlink{display:inline-flex;align-items:center;min-height:44px;font-size:14px;color:#57735f;margin-bottom:24px}.ng-search-form{display:flex;gap:12px;flex-wrap:wrap;margin:25px 0}.ng-search-form input{padding:12px;border:1px solid #889e91;background:var(--paper);max-width:100%;min-height:48px}.ng-search-form button{border:0;background:var(--green);color:white;padding:12px 24px;cursor:pointer}.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}
/* Artwork selectors must not stretch the arrow image in project links. */
.ng-project .ng-arrow{width:20px;height:20px;object-fit:contain}.ng-project figure{aspect-ratio:1}.ng-project figure img{object-fit:contain}.ng-text-link{word-break:keep-all}
/* QA pass 1: restore the source's wider Korean headline and editorial rhythm. */
@media(min-width:701px){.ng-hero h1{font-size:clamp(48px,6.3vw,91px);letter-spacing:-.025em;line-height:1.18}.ng-hero{padding-bottom:clamp(42px,4vw,58px)}.ng-intro h2{font-size:clamp(44px,5.75vw,83px);letter-spacing:-.04em}.ng-intro p{font-size:clamp(18px,1.86vw,27px)}}
/* The supplied brand lockup is white and red on transparency. Keep its pixels
   intact on a dark green field, rather than recoloring or regenerating it. */
.ng-header>.ng-brand,.ng-footer-primary>div>.ng-brand{background:var(--green);padding:8px 12px;min-height:44px}.ng-header .ng-logo{width:160px}.ng-footer .ng-logo{width:142px}
@media(min-width:1600px){.ng-gallery{max-height:830px}.ng-intro{padding-left:max(8.3%,calc((100vw - 1350px)/2));padding-right:max(8.3%,calc((100vw - 1350px)/2))}}
@media(max-width:1000px){.ng-intro{padding-left:6%;padding-right:6%;gap:4%}.ng-intro p{padding-left:10%}.ng-wide-break{display:none}.ng-footer-primary{gap:24px}.ng-footer nav{gap:18px}.ng-signature{display:none}.ng-contact-layout{gap:35px}.ng-page{padding-top:45px}.ng-hero h1{font-size:6.05vw}.ng-intro h2{font-size:5.35vw}}
@media(max-width:700px){body{font-size:16px}.ng-header{height:76px;padding:0 24px}.ng-logo{width:116px}.ng-menu-toggle{display:block;background:none;border:1px solid var(--line);padding:8px 16px;min-height:44px;font-size:14px;color:var(--ink)}.ng-main-nav{display:none;position:absolute;top:76px;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line);padding:10px 24px 24px}.ng-main-nav.is-open{display:block}.ng-main-nav nav{display:flex;flex-direction:column;align-items:stretch;gap:2px}.ng-main-nav a{font-size:17px;padding:8px 0}.ng-hero{padding:42px 20px 40px}.ng-hero h1{font-size:clamp(34px,7.6vw,52px);line-height:1.27;letter-spacing:-.055em}.ng-hero>p{font-size:17px;max-width:340px;margin:22px auto 0;line-height:1.6}.ng-hero-actions{gap:12px;margin-top:25px;flex-wrap:wrap}.ng-button{font-size:15px;padding:10px 20px}.ng-text-link{font-size:14px;gap:8px}.ng-gallery{aspect-ratio:1.32}.ng-gallery img{object-position:47% center}.ng-intro{grid-template-columns:1fr;gap:26px;padding:40px 26px;min-height:0}.ng-intro h2{font-size:38px;line-height:1.22}.ng-intro p{padding:0;border:0;font-size:17px;max-width:460px}.ng-cta{padding:35px 24px}.ng-cta h2{font-size:28px;line-height:1.45;margin-bottom:22px}.ng-footer{padding:25px 24px 20px}.ng-footer-primary{display:block}.ng-footer nav{margin-top:18px;justify-content:space-between;gap:12px;font-size:12px}.ng-footer-secondary{justify-content:flex-start;gap:16px;margin-top:18px}.ng-page{padding:38px 24px 55px}.ng-page-heading{margin-bottom:35px}.ng-page h1{font-size:39px}.ng-lead{font-size:19px}.ng-columns,.ng-contact-layout,.ng-projects{grid-template-columns:1fr;gap:35px}.ng-form{padding:24px 20px}.ng-project figure{margin-bottom:18px}.ng-project-visual{max-height:450px}.ng-note{padding:18px;margin:24px 0}.ng-post{padding-bottom:28px}.ng-rich{overflow-wrap:anywhere}.ng-rich h2{font-size:27px}.ng-rich h3{font-size:23px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
