/* Team DFMD 공용 스타일. 글꼴: Gowun Dodum (SIL OFL 1.1, fonts/OFL-GowunDodum.txt) */
@font-face{font-family:"Gowun Dodum";src:url("../fonts/gowun-dodum-subset.woff2") format("woff2");font-display:swap}
:root{--ink:#2f2a26;--sub:#6b625a;--bg:#f3f1ec;--card:#fff;--line:#d9d4ca;--accent:#2f5d62;--accent-ink:#fff;--max:1040px;
--font:"Gowun Dodum","Noto Sans KR","Malgun Gothic","Apple SD Gothic Neo",sans-serif}
@media (prefers-color-scheme:dark){body.team{--ink:#ece8e1;--sub:#aaa298;--bg:#1d1b19;--card:#292623;--line:#3e3a35;--accent:#8fc3c7;--accent-ink:#13201f}}
body.game{--ink:#3b2a20;--sub:#6e4f37;--bg:#f7ebd3;--card:#fff8e8;--line:#be8c5a;--accent:#e9c98e;--accent-ink:#3b2a20;--sun:#f2c14e;--red:#c8553d;--blue:#3d6fa3}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);background:var(--bg);color:var(--ink);line-height:1.75;font-size:1.0625rem;overflow-wrap:anywhere;word-break:keep-all}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-underline-offset:3px}
a:focus-visible,button:focus-visible{outline:3px solid var(--blue,var(--accent));outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--bg);padding:8px 14px;z-index:10}
.skip:focus{left:8px;top:8px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}
.narrow{max-width:720px}
header.top{border-bottom:1px solid var(--line)}
header.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:14px;padding-bottom:14px;flex-wrap:wrap}
.brand{font-weight:700;text-decoration:none;letter-spacing:.02em;font-size:1.1rem}
nav a{margin-left:16px;text-decoration:none;color:var(--sub)}
nav a:hover{color:var(--ink);text-decoration:underline}
h1,h2,h3{line-height:1.35;margin:0}
h2{font-size:1.45rem;margin-bottom:.6em}
section{padding:44px 0}
p{margin:.6em 0}
footer.foot{border-top:1px solid var(--line);padding:28px 0 40px;color:var(--sub);font-size:.92rem}
footer.foot p{margin:.3em 0}
.btn{display:inline-block;background:var(--accent);color:var(--accent-ink);border:2px solid var(--ink);border-radius:12px;padding:10px 18px;text-decoration:none;font-weight:700;min-height:44px;margin:4px 8px 4px 0}
.btn[aria-disabled=true]{opacity:.7;border-style:dashed;cursor:default}
.badge{display:inline-block;font-size:.82rem;border:1px solid currentColor;border-radius:99px;padding:1px 10px;color:var(--sub)}

/* ---- 팀 첫 화면 ---- */
.hero-team{padding:72px 0 28px}
.hero-team h1{font-size:clamp(2rem,6vw,3.2rem);letter-spacing:.01em}
.hero-team p.lead{font-size:1.2rem;color:var(--sub);max-width:34em;margin-top:.8em}
.games{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;list-style:none;padding:0;margin:0}
.game-card{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;height:100%;transition:transform .15s}
.game-card:hover{transform:translateY(-3px)}
.game-card a.cover{display:block;text-decoration:none;color:inherit;height:100%}
.game-card img{width:100%;aspect-ratio:1024/500;object-fit:cover;background:#eee}
.game-card .body{padding:16px 18px 20px}
.game-card h3{font-size:1.2rem;margin:.2em 0 .3em}
.game-card p{margin:.3em 0;color:var(--sub);font-size:.98rem}
.about p{max-width:36em}

/* ---- 도토에게 게임 페이지 ---- */
body.game{background:var(--bg) radial-gradient(circle at 1px 1px,rgba(190,140,90,.12) 1px,transparent 0) 0 0/22px 22px}
.airmail{height:10px;background:repeating-linear-gradient(135deg,var(--red) 0 18px,#f7ebd3 18px 28px,var(--blue) 28px 46px,#f7ebd3 46px 56px)}
body.game header.top{border-color:var(--line);background:rgba(247,235,211,.9)}
.hero-game{padding:32px 0 8px;text-align:center}
.hero-game .frame{max-width:860px;margin:0 auto;border:4px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;box-shadow:0 6px 0 rgba(110,79,55,.25)}
.logo-line{font-size:clamp(2.4rem,9vw,4.2rem);font-weight:700;margin:.5em 0 .1em;letter-spacing:.02em}
.tagline{font-size:clamp(1.15rem,3.6vw,1.5rem);margin:.2em 0 .8em;color:var(--sub)}
.tagline b{color:var(--ink);font-weight:700}
.cta{margin:18px 0 6px}
.note{font-size:.92rem;color:var(--sub)}
.letter{position:relative;background:#fffdf5;border:2px solid var(--line);border-radius:6px;padding:28px 28px 28px 30px;max-width:720px;margin:0 auto;box-shadow:0 5px 0 rgba(110,79,55,.2);
background-image:repeating-linear-gradient(transparent 0 33px,rgba(190,140,90,.28) 33px 34px);line-height:34px}
.letter p{margin:0 0 34px}
.letter p:last-child{margin-bottom:0}
.stamp{position:absolute;top:-16px;right:14px;width:86px;height:86px;border-radius:50%;border:3px double var(--red);color:var(--red);display:flex;align-items:center;justify-content:center;text-align:center;font-size:.78rem;line-height:1.25;transform:rotate(12deg);background:rgba(255,253,245,.9)}
.sign{text-align:right}
.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;list-style:none;padding:0;margin:0}
.features li{background:var(--card);border:2px solid var(--line);border-radius:12px;padding:16px 18px}
.features h3{font-size:1.1rem;margin-bottom:.3em}
.features p{margin:0;font-size:.98rem;color:var(--sub)}
.gallery{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 4px 16px;margin:0 -4px;list-style:none}
.gallery li{flex:0 0 min(82%,520px);scroll-snap-align:center;margin:0}
.gallery figure{margin:0}
.gallery img{border:3px solid var(--line);border-radius:10px;background:#fff;width:100%}
.gallery figcaption{font-size:.92rem;color:var(--sub);margin-top:6px}
.gallery:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.price{background:var(--card);border:2px solid var(--line);border-radius:14px;padding:18px 22px;max-width:720px}
.price ul{margin:.4em 0;padding-left:1.2em}
.price li{margin:.3em 0}
.facts{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:0}
.facts dt{color:var(--sub)}
.facts dd{margin:0}
.alt{background:rgba(255,248,232,.6);border-block:1px solid var(--line)}
/* 방침 페이지 */
.doc h1{font-size:1.8rem;margin:1em 0 .3em}
.doc h2{font-size:1.2rem;border-bottom:2px solid var(--sun,var(--line));padding-bottom:.2em;margin-top:1.8em}
@media (min-width:760px){.gallery{flex-wrap:wrap;overflow:visible;scroll-snap-type:none}.gallery li{flex:0 0 calc(50% - 7px)}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media (max-width:600px){.letter{padding:52px 18px 24px}.stamp{width:72px;height:72px;font-size:.7rem;top:-20px}}
