/* Semantic palette: lime is an accent, never light-surface body text. */
@font-face { font-family:Pretendard; src:url('assets/fonts/Pretendard-Bold.ttf') format('truetype'); font-weight:700; font-display:swap; }
:root { --essence-green:#173d32; --impact-lime:#b8ff00; --warm-white:#f8f8f6; }
.services { background:var(--essence-green); color:var(--warm-white); }
.services-title .section-label { color:var(--impact-lime); }
.services-title>p:last-child { color:#e0e9e4; }
.service-list,.service-row { border-color:#668278; }
.service-row summary>span,.service-row summary b { color:var(--impact-lime); }
.service-row:hover,.service-row[open] { background:var(--warm-white); color:var(--essence-green); }
.service-row:hover summary>span,.service-row:hover summary b,
.service-row[open] summary>span,.service-row[open] summary b { color:var(--essence-green); }
.service-row summary:focus-visible { outline:3px solid var(--impact-lime); outline-offset:-6px; }
.service-row[open] summary:focus-visible { outline-color:var(--essence-green); }
.service-packages article>span { color:var(--essence-green); font-weight:600; }
.service-packages strong { color:var(--essence-green); }
.package-inquiry { background:var(--essence-green); color:var(--warm-white); }
.package-inquiry:hover,.package-inquiry:focus-visible { background:var(--impact-lime); color:#0b0b0b; }
.service-chooser button,.service-chooser a { border-color:#9bb0a7; color:var(--warm-white); }
.service-chooser button:hover,.service-chooser button:focus-visible,
.service-chooser a:hover,.service-chooser a:focus-visible { background:var(--impact-lime); color:#0b0b0b; border-color:var(--impact-lime); }
.contact { background:radial-gradient(ellipse at 95% 5%,#e8efea,transparent 48%),var(--warm-white); }
.contact h2 em,.contact .section-label,.contact-guide span { color:var(--essence-green); }
.contact-guide span { font-weight:600; }
.project-form .form-head p,.brief-progress b,.project-form .field-hint { color:var(--essence-green); }
.project-form input:focus,.project-form textarea:focus,.project-form select:focus { border-color:var(--essence-green); outline-color:var(--essence-green); box-shadow:0 0 0 3px #173d3215; }
.package-toggle input:checked+span { border-color:var(--essence-green); background:#efffc7; box-shadow:0 0 0 2px #173d3214; }
.package-toggle input:checked+span b,.package-toggle input:checked+span small { color:var(--essence-green); }
.package-toggle input:focus-visible+span { outline:3px solid var(--essence-green); }
.package-toggle small,.package-toggle-help { color:#626262; }
.project-form .form-action button,.project-form .form-action button:disabled,
.submission-dialog button,.submission-icon { background:var(--essence-green); color:var(--warm-white); }
.project-form .form-action button:hover,.submission-dialog button:hover { background:#245746; color:var(--warm-white); }
.project-form .form-action button:hover:not(:disabled) { background:var(--impact-lime); color:#000; }
.project-form .form-action button:hover:not(:disabled) span { color:inherit; }

/* Bold is reserved for hierarchy; long-form body copy retains regular weight. */
.project-form .required-label { display:flex; align-items:center; gap:5px; color:var(--essence-green); font-weight:700; }
.project-form .required-marker { color:var(--essence-green); font-size:15px; font-weight:700; line-height:1; }
.project-form :is(input,select,textarea)[required] { background:#f3f8ee; border-color:#91aa82; }
.project-form :is(input,select,textarea)[required]:focus { background:#fff; border-color:var(--essence-green); box-shadow:0 0 0 3px #b8ff0033; }
.project-form :is(input,select,textarea)[required][aria-invalid="true"] { border-color:#d34c43; background:#fff7f6; }
h1,h2,h3,.service-packages h4,.service-packages strong,.form-head h3,
.package-toggle b,.brief-group h4,.manifesto-promise strong { font-weight:700; }
.particle-live h1,.statement h2,.works-head h2,.services-title h2,
.method h2,.contact h2,.manifesto-copy h2 { font-weight:700; }
.topbar nav,.top-cta,.work-tabs button,.package-inquiry,.form-action button,
.contact-guide span,.project-form label,.buying-guide summary { font-weight:600; }
.particle-live .particle-copy { width:76%; }
.particle-live h1 .particle-blue { font-size:1em; }
.manifesto-signature img { display:block; width:200px; height:auto; filter:invert(1); }
.statement .section-label { color:var(--essence-green); font-weight:600; }
.statement h2,.contact h2 { line-height:1.2; }
.statement h2 em,.contact h2 em {
  color:#0b0b0b; background:var(--impact-lime); padding:0 .09em;
  -webkit-box-decoration-break:clone; box-decoration-break:clone;
}
.services-title h2 em { color:var(--essence-green); background:var(--impact-lime); padding:0 .09em; font-style:normal; -webkit-box-decoration-break:clone; box-decoration-break:clone; }
.services-title h2 { line-height:1.3; }
.services-title h2 em { display:inline-block; line-height:1.12; }
.services-title h2 .title-line + .title-line { margin-top:.12em; }
.statement h2 .title-line,.services-title h2 .title-line,.contact h2 .title-line { display:block; }
.buying-guide { background:#173d32; }
.project-form input,.project-form textarea,.project-form select { font-weight:400; }
.contact :is(button,a,summary):focus-visible { outline-color:var(--essence-green); }
.method-steps h3 > span { display:block; }
@media(max-width:900px) {
  .particle-live .particle-copy { width:100%; }
  .particle-live h1 { font-size:clamp(38px,11.4vw,72px); }
  .particle-live h1 .particle-blue { white-space:normal; max-width:8em; }
  .particle-live h1 .particle-blue { font-size:1em; }
  .method-steps li { gap:12px; }
  .method-steps h3 { letter-spacing:-.015em; word-spacing:.08em; line-height:1.22; }
  .method-steps p { margin:0; letter-spacing:-.01em; word-spacing:.12em; line-height:1.8; }
}
@media(min-width:851px) {
  .statement { min-height:min(980px,100svh); }
  .statement,.works-head { grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,1fr); gap:30px; }
  .statement>div { display:contents; }
  .statement h2 { grid-column:2; align-self:end; font-size:clamp(48px,6.6vw,108px); letter-spacing:-.11em; }
  .statement div>p { grid-column:3; align-self:end; }
  .statement div>p { max-width:none; margin:0 0 8px; }
  .services-title h2 { font-size:clamp(46px,5.5vw,86px); }
  .contact h2 { font-size:clamp(46px,5.2vw,82px); }
  .statement h2 .title-line,.services-title h2 .title-line,.contact h2 .title-line { white-space:nowrap; }
}
@media(min-width:851px) and (max-width:1100px) {
  .statement h2,.works-head h2 { font-size:5.9vw; }
  .contact h2 { font-size:44px; }
}
@media(max-width:480px) {
  .statement h2 { font-size:clamp(38px,11.4vw,48px); letter-spacing:-.085em; }
  .services-title h2 { font-size:clamp(34px,9vw,40px); }
}
