/* PetrichorAI coming soon: launch-page coral mesh hero (logo + tagline only) → contact card → dark footer */
:root{
  --bg:#FFFFFF;--bg-2:#F6F5F3;--surface:#FFFFFF;
  --ink:#0F1117;--ink-2:#3A404C;--muted:#697080;--line:#E7E8EC;
  --coral:#F58466;--coral-ink:#D4502F;--red:#F0555A;--peach:#F9B48F;--tint:#FDEEE8;
  --hero-ink:#12131A;
  --shadow:0 1px 1px rgba(16,18,27,.04),0 8px 24px -6px rgba(16,18,27,.10),0 30px 60px -20px rgba(16,18,27,.18);
  --sans:"Geist","Noto Sans KR",system-ui,-apple-system,"Apple SD Gothic Neo",sans-serif;
  --mono:"Geist Mono",ui-monospace,Menlo,monospace;
  --wrap:1160px;
}
@media (prefers-color-scheme: dark){:root{
  --bg:#0B0D12;--bg-2:#11141B;--surface:#151922;--ink:#F3F4F6;--ink-2:#C9CDD5;--muted:#9AA1AD;--line:#262B36;--tint:#2A1A16;--coral-ink:#F79A7F;
  --shadow:0 1px 1px rgba(0,0,0,.3),0 8px 24px -6px rgba(0,0,0,.5),0 30px 60px -20px rgba(0,0,0,.6);color-scheme:dark}}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.6 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit}
:focus-visible{outline:2px solid var(--coral);outline-offset:3px;border-radius:6px}
[hidden]{display:none!important}
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:clamp(16px,4vw,32px)}
h1,h2,h3{margin:0;font-weight:600;text-wrap:balance;line-height:1.2}
p{margin:0}
h2.big{font-size:clamp(2rem,1.3rem + 2.6vw,3.3rem);line-height:1.06;letter-spacing:-.035em}
.lead{font-size:clamp(1.05rem,1rem + .3vw,1.2rem);color:var(--muted);max-width:60ch;line-height:1.55}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border-radius:999px;font:600 .95rem var(--sans);text-decoration:none;cursor:pointer;border:0;transition:transform .15s,background .15s,box-shadow .15s}
.btn .arr{transition:transform .15s}
.btn:hover .arr{transform:translateX(3px)}
.btn.dark{background:var(--hero-ink);color:#fff}
.btn.dark:hover{background:#2a2c36}
.btn.coral{background:var(--coral-ink);color:#fff}
.btn.coral:hover{background:var(--red)}
.btn.ghost{background:#fff;color:var(--hero-ink);box-shadow:0 0 0 1px rgba(18,19,26,.12),0 4px 14px -6px rgba(18,19,26,.25)}
.btn.ghost:hover{background:#FFF4EF}
.btn svg{width:16px;height:16px;flex:none}
.btn:disabled{opacity:.45;cursor:not-allowed;filter:saturate(.6)}
.btn:disabled .arr{transform:none!important}

/* logo mark (same asset as the launch page) */
.mark{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--coral);flex:none}
.mark i{width:64%;height:64%;background:#fff;-webkit-mask:url('../img/logo-mark.png') center/contain no-repeat;mask:url('../img/logo-mark.png') center/contain no-repeat}
/* keep the logo's colours in Windows high-contrast mode and when printed */
.mark{forced-color-adjust:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font:700 1.08rem var(--sans);letter-spacing:-.02em;color:var(--hero-ink)}

/* top bar */
.top{position:relative;z-index:2}
.top .wrap{display:flex;align-items:center;gap:16px;height:68px}
.top-r{margin-left:auto;display:flex;align-items:center;gap:10px}
.lang{display:flex;background:rgba(255,255,255,.5);border-radius:999px;padding:3px;font:500 .74rem var(--mono)}
.lang button{all:unset;cursor:pointer;padding:5px 10px;border-radius:999px;color:var(--hero-ink)}
.lang button[aria-pressed="true"]{background:var(--hero-ink);color:#fff}
.lang button:focus-visible{outline:2px solid var(--hero-ink)}

/* hero */
.hero{position:relative;color:var(--hero-ink);isolation:isolate}
.mesh{position:absolute;inset:0;z-index:-1;clip-path:polygon(0 0,100% 0,100% 78%,0 100%);overflow:hidden;background:#F7A486}
.mesh canvas{width:100%;height:100%;display:block;filter:saturate(1.1)}
.mesh::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,0) 60%,rgba(255,255,255,.15));pointer-events:none}
.hero-in{display:grid;place-items:center;text-align:center;padding-block:clamp(24px,5vw,56px) clamp(150px,17vw,220px)}
.hero-logo{display:inline-flex;align-items:center;gap:14px;font:700 clamp(1.4rem,1.1rem + 1.2vw,2rem)/1 var(--sans);letter-spacing:-.03em;margin-bottom:clamp(4px,1vw,8px)}
.hero-logo .mark{width:clamp(44px,5vw,58px);height:clamp(44px,5vw,58px);border-radius:clamp(12px,1.3vw,15px);box-shadow:0 10px 30px -10px rgba(160,40,40,.45)}
.hero h1{margin:clamp(20px,3vw,28px) auto 0;max-width:15ch;font-size:clamp(2.5rem,1.2rem + 5vw,5.4rem);line-height:.98;letter-spacing:-.05em;font-weight:600}
.hero h1 .h1-a{display:block;color:var(--hero-ink);font-weight:650}
.hero h1 .h1-b{display:block;color:#fff;font-weight:500;text-shadow:0 2px 24px rgba(160,40,40,.18)}
.hero h1 .loop{position:relative;display:inline-block;white-space:nowrap}
.loop-mark{position:absolute;left:-2%;right:-2%;bottom:-.12em;width:104%;height:.26em;overflow:visible;clip-path:inset(-50% 100% -50% 0);animation:loopdraw 1.1s cubic-bezier(.65,0,.35,1) .6s forwards}
.loop-mark path{fill:none;stroke:var(--hero-ink);stroke-width:4;stroke-linecap:round;vector-effect:non-scaling-stroke}
@keyframes loopdraw{to{clip-path:inset(-50% -2% -50% 0)}}
.hero .sub{margin:26px auto 0;font-size:clamp(1.05rem,1rem + .4vw,1.25rem);line-height:1.5;color:#2B2530;max-width:46em;text-wrap:balance}
.hero .cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px;justify-content:center}
@media (max-width:900px){.mesh{clip-path:polygon(0 0,100% 0,100% 88%,0 100%)}}
@media (max-width:480px){.hero .cta{flex-direction:column;align-items:stretch;width:100%;max-width:320px;margin-inline:auto}.hero-in>div{width:100%}}
@media (prefers-reduced-motion:reduce){.loop-mark{animation:none;clip-path:none}html{scroll-behavior:auto}}

/* contact: one card lifted onto the bottom of the hero so it shows on the first screen */
.sec{padding-block:0 clamp(64px,8vw,104px);scroll-margin-top:16px;position:relative;z-index:1}
.contact{width:calc(100% - 2 * clamp(16px,4vw,32px));max-width:760px;margin:calc(-1 * clamp(110px,13vw,170px)) auto 0;padding:clamp(22px,4vw,44px);display:grid;gap:clamp(22px,3vw,30px);background:var(--surface);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}
.contact h2.big{font-size:clamp(1.8rem,1.4rem + 1.4vw,2.5rem)}
/* the contact card always stays white, even when the device is in dark mode */
.contact{--surface:#FFFFFF;--bg-2:#F6F5F3;--ink:#0F1117;--ink-2:#3A404C;--muted:#697080;--line:#E7E8EC;--tint:#FDEEE8;--coral-ink:#D4502F;color-scheme:light;color:var(--ink);box-shadow:0 1px 1px rgba(16,18,27,.04),0 8px 24px -6px rgba(16,18,27,.14),0 30px 60px -20px rgba(16,18,27,.28)}
.head{display:grid;gap:14px;justify-items:center;text-align:center}
.head .lead{max-width:44ch;text-wrap:balance}

.form{display:grid;gap:20px}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:14px}
label.f{display:grid;gap:8px;font:500 .85rem var(--sans);color:var(--ink-2)}
.f input,.f textarea,.f select{font:400 1rem var(--sans);color:var(--ink);background:var(--bg-2);border:1px solid transparent;border-radius:10px;padding:12px 14px;width:100%}
.f textarea{min-height:120px;resize:vertical}
.f input:focus,.f textarea:focus,.f select:focus{outline:none;border-color:var(--coral);background:var(--surface);box-shadow:0 0 0 4px color-mix(in srgb,var(--coral) 20%,transparent)}
.f select{appearance:none;-webkit-appearance:none;padding-right:38px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23697080' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:.85rem;color:var(--muted)}
.consent input{margin-top:3px;accent-color:var(--coral-ink);width:16px;height:16px;flex:none}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.consent a{color:var(--coral-ink);text-underline-offset:2px}
.req{color:var(--coral-ink);font-weight:700}
.req-note{font-size:.8rem;color:var(--muted)}
.form-foot{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;justify-content:space-between;padding-top:18px;border-top:1px solid var(--line)}
label.f.bad input,label.f.bad textarea{border-color:#D93025;background:var(--surface);box-shadow:0 0 0 3px rgba(217,48,37,.15)}
label.consent.bad{color:#D93025}
.f-err{font:400 .85rem/1.45 var(--sans);color:#B3261E}
.f-fix{all:unset;cursor:pointer;color:var(--coral-ink);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.f-fix:focus-visible{outline:2px solid var(--coral);outline-offset:2px;border-radius:4px}
.done{padding:12px 14px;border-radius:10px;background:var(--tint);font-size:.9rem;color:var(--ink)}
.done.err{background:#FDECEA;color:#B3261E}
@media (max-width:520px){.frow{grid-template-columns:1fr}.form-foot .btn{width:100%}}

/* footer: dark band like the launch page — brand + tagline left, registered company right */
footer{position:relative;overflow:hidden;isolation:isolate;background:#0B0D12;color:#A7ADB8;padding-block:clamp(48px,6vw,72px) calc(28px + env(safe-area-inset-bottom,0px));font-size:.92rem}
footer::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--red),var(--coral) 50%,var(--peach))}
footer::after{content:"";position:absolute;width:560px;height:560px;left:-220px;bottom:-360px;border-radius:50%;background:radial-gradient(closest-side,rgba(245,132,102,.16),transparent);z-index:-1}
.foot{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px clamp(32px,6vw,96px);align-items:start}
footer .brand{color:#fff}
/* footer tagline: same two-tone treatment as the hero headline, smaller and set for the dark band */
.foot-tag{margin-top:18px;font:600 clamp(1.35rem,1.05rem + 1vw,1.85rem)/1.04 var(--sans);letter-spacing:-.04em}
.foot-tag .h1-a{display:block;color:#fff;font-weight:650}
.foot-tag .h1-b{display:block;color:var(--coral);font-weight:500}
.foot-tag .loop{position:relative;display:inline-block;white-space:nowrap}
.foot-tag .loop-mark{animation:none;clip-path:none}
.foot-tag .loop-mark path{stroke:#fff;stroke-width:2.5}
.office{display:grid;gap:6px;align-content:start}
.office h4{margin:0 0 6px;font:600 .74rem var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--coral)}
.office .co-name{font-weight:600;color:#fff}
.office address{font-style:normal;line-height:1.6}
.office .reg{margin-top:6px;font-size:.85rem}
footer .legal{margin-top:clamp(36px,5vw,56px);padding-top:20px;border-top:1px solid rgba(255,255,255,.1);font-size:.82rem}
@media (max-width:640px){.foot{grid-template-columns:1fr;justify-items:center;text-align:center;gap:28px}.foot-tag{margin-inline:auto}.office{justify-items:center;width:100%;padding-top:28px;border-top:1px solid rgba(255,255,255,.1)}footer .legal{text-align:center;margin-top:28px}}

/* privacy policy page */
.doc{max-width:760px;padding-block:clamp(24px,5vw,48px) clamp(48px,7vw,80px)}
.doc-top{display:flex;align-items:center;justify-content:space-between;gap:16px}
.doc .brand{color:var(--ink)}
.doc .lang{background:var(--bg-2)}
.doc .lang button{color:var(--ink)}
.doc .lang button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
.doc h1{margin:32px 0 6px;font-size:clamp(2rem,1.5rem + 2vw,2.8rem);letter-spacing:-.035em}
.doc h2{margin:40px 0 10px;font-size:1.2rem;letter-spacing:-.01em;scroll-margin-top:16px}
.doc p,.doc li{color:var(--ink-2)}
.doc p+p{margin-top:10px}
.doc ul{margin:10px 0 0;padding-left:1.25em}
.doc li+li{margin-top:4px}
.doc strong{color:var(--ink);font-weight:600}
.doc a{color:var(--coral-ink);text-underline-offset:2px}
.doc-meta{margin-bottom:18px;font:500 .8rem var(--mono);color:var(--muted)}
.doc-back{margin-top:48px;padding-top:20px;border-top:1px solid var(--line)}
.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:12px 0 18px}
.tbl{width:100%;border-collapse:collapse;font-size:.875rem;min-width:400px}
.tbl-wide{min-width:52rem}
.tbl th,.tbl td{padding:.55rem .75rem;border:1px solid var(--line);text-align:left;vertical-align:top;color:var(--ink-2);word-break:keep-all;overflow-wrap:anywhere}
.tbl thead th{background:var(--bg-2);font-weight:600;color:var(--ink)}
.tbl tbody tr:hover{background:color-mix(in srgb,var(--coral) 4%,transparent)}
@media print{.doc .lang,.doc-back{display:none}.tbl-wrap{overflow:visible}}
