/*
Theme Name: OAOA LAB Studio
Author: OAOA LAB
Description: Custom portfolio theme adapted from OAOA LAB HTML.
Version: 1.5
Requires PHP: 7.4
Text Domain: oaoa-lab
*/

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+KR:wght@300;400;500;600;700&display=swap');
:root{--bg:#f1f0e9;--ink:#1a1c19;--muted:#6b7068;--accent:#d9ff62;--line:#c8c9bf}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans','Noto Sans KR',sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}::selection{background:var(--accent);color:var(--ink)}.wrap{max-width:1600px;margin:auto;padding:0 clamp(22px,5vw,90px)}.nav{position:fixed;z-index:20;top:0;left:0;width:100%;background:rgba(241,240,233,.92);backdrop-filter:blur(20px);border-bottom:1px solid rgba(0,0,0,.1)}.nav-inner{height:78px;display:flex;align-items:center;justify-content:space-between}.logo{font-weight:700;font-size:25px;letter-spacing:-1.7px}.navlinks{display:flex;gap:32px;font-size:11px;font-weight:700;letter-spacing:1.5px}.navlinks a:hover,.footer a:hover{opacity:.5}.menu{display:none;background:none;border:0;font-size:25px}.hero{padding-top:150px;min-height:100svh;display:flex;flex-direction:column;justify-content:space-between}.eyebrow{font-size:11px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase}.hero-title{font-size:clamp(66px,12.5vw,210px);letter-spacing:-.095em;line-height:.85;font-weight:600;margin:65px 0 35px}.hero-title span{display:block}.hero-title .indent{padding-left:15%}.hero-bottom{display:flex;justify-content:space-between;align-items:end;gap:30px;margin:30px 0 65px}.hero-bottom p{font-size:clamp(16px,2vw,24px);line-height:1.6;letter-spacing:-.04em;margin:0}.round-link{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--ink);border-radius:50%;height:86px;width:86px;font-size:29px;transition:.3s}.round-link:hover{background:var(--accent);transform:rotate(45deg)}.visual{height:min(65vw,780px);min-height:440px;background:#1b221d;overflow:hidden;position:relative;isolation:isolate}.visual:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 75% 25%,#c6e2a0 0%,transparent 28%),radial-gradient(ellipse at 30% 70%,#788b67 0%,transparent 45%),linear-gradient(135deg,#111a17,#344638);opacity:.9}.sculpture{position:absolute;left:50%;top:53%;transform:translate(-50%,-50%) rotate(-25deg);height:72%;aspect-ratio:1;border:clamp(45px,8vw,120px) solid #d9ff62;border-radius:50% 50% 42% 55%;box-shadow:30px 50px 80px #101d17aa,inset -30px 10px 35px #8da83b;filter:drop-shadow(25px 35px 15px #0b140d66)}.visual-text{position:absolute;bottom:35px;left:clamp(22px,5vw,90px);right:clamp(22px,5vw,90px);display:flex;justify-content:space-between;gap:20px;color:white;font-size:11px;letter-spacing:1.6px}.section{padding:clamp(90px,12vw,190px) 0}.section-head{display:flex;justify-content:space-between;align-items:start;gap:25px;margin-bottom:70px}.section-head .eyebrow{padding-top:10px}.big-heading{font-size:clamp(40px,6vw,95px);letter-spacing:-.075em;line-height:1.05;font-weight:500;margin:0;max-width:950px}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:10vw;margin-top:85px}.about-grid p{margin:0;color:var(--muted);line-height:2;font-size:clamp(15px,1.3vw,19px);word-break:keep-all}.stat{font-size:12px;letter-spacing:1px;border-top:1px solid var(--line);padding-top:20px}.expertise{background:#1b1e19;color:#f1f0e9}.expertise .section-head{margin-bottom:45px}.service{display:grid;grid-template-columns:70px 1fr 1fr 30px;gap:20px;align-items:center;padding:36px 0;border-top:1px solid #50564b}.service:last-child{border-bottom:1px solid #50564b}.service h3{font-size:clamp(26px,3.4vw,52px);letter-spacing:-.055em;font-weight:500;margin:0}.service p{color:#b0b7aa;line-height:1.8;font-size:13px;margin:0}.service .num{font-size:12px;color:var(--accent)}.service .arrow{font-size:24px;color:var(--accent)}.projects-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:50px}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:70px 24px}.project-card:nth-child(even){padding-top:110px}.project-art{height:clamp(290px,36vw,550px);position:relative;overflow:hidden;background:#c5c9bc}.project-art:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#0004,transparent 50%)}.project-card:nth-child(1) .project-art{background:radial-gradient(circle at 50% 60%,#f9f1b8 0 8%,transparent 8.3%),repeating-conic-gradient(from 0deg at 50% 60%,#a6b2a7 0deg 15deg,#718c82 15deg 30deg);}.project-card:nth-child(2) .project-art{background:linear-gradient(135deg,#c0a8a5,#e7d7c9)}.project-card:nth-child(2) .project-art:before{content:'';position:absolute;inset:15% 25%;border:50px solid #f7f0e8;border-radius:50% 50% 8% 8%;transform:rotate(20deg);box-shadow:20px 20px 0 #8f676b}.project-card:nth-child(3) .project-art{background:linear-gradient(135deg,#34435c,#9aa9bb)}.project-card:nth-child(3) .project-art:before{content:'';position:absolute;width:55%;aspect-ratio:1;left:20%;top:15%;border-radius:50%;border:40px solid #e9e6d4;box-shadow:0 0 65px #fff8}.project-card:nth-child(4) .project-art{background:linear-gradient(135deg,#c4b4a5,#f1e4d5)}.project-card:nth-child(4) .project-art:before{content:'';position:absolute;inset:18% 20%;background:repeating-linear-gradient(90deg,#cf593b 0 16px,#f6d59c 16px 34px);border-radius:50% 50% 10% 10%;transform:rotate(-12deg)}.art-label{position:absolute;left:25px;bottom:22px;z-index:2;color:white;font-size:11px;letter-spacing:1.5px}.project-meta{display:flex;justify-content:space-between;gap:15px;padding-top:18px;border-top:1px solid var(--line);margin-top:20px}.project-meta h3{margin:0;font-size:clamp(18px,2vw,28px);font-weight:500;letter-spacing:-.04em}.project-meta span{font-size:11px;color:var(--muted);text-align:right}.note{font-size:12px;color:var(--muted);margin-top:40px}.contact{background:var(--accent);padding:clamp(90px,12vw,180px) 0 60px}.contact .big-heading{font-size:clamp(60px,10vw,160px);max-width:none}.contact-sub{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-top:80px}.contact-sub p{font-size:clamp(16px,2vw,25px);line-height:1.7;margin:0}.contact-cta{border:1px solid var(--ink);padding:22px 30px;border-radius:100px;font-weight:600;cursor:pointer;background:transparent;transition:.2s}.contact-cta:hover{background:var(--ink);color:var(--accent)}.footer{display:flex;justify-content:space-between;gap:25px;border-top:1px solid #7f9650;padding-top:25px;margin-top:130px;font-size:11px;letter-spacing:.5px}.footer span{opacity:.7}.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s,transform .8s}.reveal.show{opacity:1;transform:none}@media(max-width:800px){.nav-inner{height:66px}.menu{display:block}.navlinks{display:none;position:absolute;top:66px;left:0;right:0;background:var(--bg);padding:25px;flex-direction:column;gap:25px;border-bottom:1px solid var(--line)}.navlinks.open{display:flex}.hero{padding-top:125px;min-height:85svh}.hero-title{font-size:clamp(61px,15vw,120px);margin:40px 0}.hero-title .indent{padding-left:5%}.hero-bottom{margin-bottom:40px}.round-link{height:62px;width:62px;flex-shrink:0}.visual{min-height:350px}.sculpture{height:60%}.section-head{display:block;margin-bottom:40px}.section-head .eyebrow{margin-bottom:35px}.about-grid{grid-template-columns:1fr;gap:30px;margin-top:40px}.service{grid-template-columns:30px 1fr 25px}.service p{grid-column:2/3}.service .arrow{grid-column:3;grid-row:1}.project-grid{grid-template-columns:1fr;gap:55px}.project-card:nth-child(even){padding-top:0}.project-art{height:420px}.contact-sub{display:block}.contact-cta{margin-top:35px}.footer{flex-wrap:wrap;margin-top:90px}.footer span{width:100%}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}

.project-art img{width:100%;height:100%;object-fit:cover;display:block}.project-art:has(img){background:#c5c9bc!important}.project-art:has(img):before{display:none}.project-card a.project-link{display:block}.project-card a.project-link:hover img{transform:scale(1.025)}.project-art img{transition:transform .35s}.single-project-content{max-width:900px;margin:0 auto;padding:50px 0 120px;line-height:1.9}.single-project-content img{max-width:100%;height:auto}.project-detail-cover{width:100%;height:auto;max-height:750px;object-fit:cover}.admin-edit-link{font-size:12px;text-decoration:underline}

/* Image management 1.1 */
.visual.has-hero-image:before{display:none}
.hero-uploaded-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.oaoa-detail-gallery{display:grid;grid-template-columns:1fr;gap:22px;margin:40px 0}
.oaoa-detail-gallery img{width:100%;height:auto;display:block}


/* v1.2 — mobile contact section and footer layout */
@media (max-width: 800px) {
  .contact { padding: 84px 0 32px; overflow: hidden; }
  .contact .big-heading {
    font-size: clamp(40px, 10.8vw, 76px);
    line-height: 1.08;
    letter-spacing: -.065em;
    overflow-wrap: anywhere;
  }
  .contact-sub {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 26px;
    margin-top: 42px;
  }
  .contact-sub p { font-size: 16px; line-height: 1.75; overflow-wrap: anywhere; }
  .contact-cta { align-self: flex-start; margin-top: 0; max-width: 100%; }
  .footer {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    margin-top: 75px;
    padding-top: 24px;
    line-height: 1.6;
    overflow-wrap: anywhere;
  }
  .footer span { width: auto; }
}
@media (max-width: 380px) {
  .contact .big-heading { font-size: clamp(36px, 10vw, 44px); }
  .contact-sub p { font-size: 14px; }
  .contact-cta { padding: 17px 24px; }
}


/* v1.3 — mobile breathing room and comfortable typography */
@media (max-width: 800px) {
  :root { --mobile-gutter: clamp(26px, 7vw, 38px); }
  .wrap { padding-left: var(--mobile-gutter); padding-right: var(--mobile-gutter); }
  .navlinks { padding-left: var(--mobile-gutter); padding-right: var(--mobile-gutter); }
  .hero { padding-top: 138px; }
  .hero-title {
    font-size: clamp(43px, 11.2vw, 82px);
    line-height: 1.04;
    letter-spacing: -.075em;
    margin: 42px 0 40px;
    overflow-wrap: normal;
  }
  .hero-title .indent { padding-left: 4%; }
  .hero-bottom { gap: 20px; margin-top: 25px; }
  .hero-bottom p { font-size: clamp(15px, 3.8vw, 19px); line-height: 1.75; }
  .eyebrow { font-size: 10px; letter-spacing: 1.6px; line-height: 1.65; }
  .section { padding-top: 95px; padding-bottom: 95px; }
  .section-head { margin-bottom: 45px; }
  .section-head .eyebrow { margin-bottom: 25px; }
  .big-heading { font-size: clamp(35px, 9vw, 64px); line-height: 1.15; letter-spacing: -.055em; }
  .about-grid { margin-top: 38px; gap: 28px; }
  .about-grid p { font-size: 15px; line-height: 1.95; }
  .service { padding: 30px 0; column-gap: 16px; row-gap: 10px; }
  .service h3 { font-size: clamp(24px, 6.5vw, 38px); line-height: 1.2; }
  .service p { line-height: 1.8; }
  .projects-head { gap: 18px; }
  .projects-head > .eyebrow { font-size: 9px; text-align: right; }
  .project-art { height: clamp(260px, 90vw, 440px); }
  .project-meta { gap: 15px; }
  .project-meta h3 { font-size: clamp(17px, 4.8vw, 24px); line-height: 1.3; }
  .project-meta span { line-height: 1.5; }
  .visual-text { left: var(--mobile-gutter); right: var(--mobile-gutter); gap: 12px; font-size: 9px; line-height: 1.5; }
  .contact { padding-top: 95px; padding-bottom: 38px; }
  .contact .big-heading { font-size: clamp(38px, 10vw, 70px); line-height: 1.14; letter-spacing: -.055em; }
  .contact-sub { margin-top: 46px; gap: 30px; }
  .contact-sub p { font-size: 15px; line-height: 1.9; word-break: keep-all; }
  .contact-cta { padding: 18px 28px; }
  .footer { margin-top: 90px; gap: 16px; }
  .single-project-content { padding-top: 38px; padding-bottom: 90px; }
}
@media (max-width: 380px) {
  :root { --mobile-gutter: 26px; }
  .hero-title { font-size: clamp(39px, 10.8vw, 44px); }
  .contact .big-heading { font-size: clamp(36px, 9.7vw, 43px); }
}

/* v1.4 — restore strong editorial typography on desktop and mobile */
.hero-title { font-weight: 800; }
.big-heading { font-weight: 800; }
.service h3 { font-weight: 700; }
.project-meta h3 { font-weight: 700; }
.contact .big-heading { font-weight: 800; }
@media (max-width: 800px) {
  .hero-title { font-weight: 800; }
  .big-heading, .contact .big-heading { font-weight: 800; }
  .service h3, .project-meta h3 { font-weight: 700; }
}
