
:root{
  --o-bg:#07101A;--o-panel:#0C1823;--o-gold:#D4AE5A;--o-cream:#F5E7C3;
  --o-muted:#C3B28E;--o-line:rgba(225,190,111,.22)
}
*{box-sizing:border-box}
body.onugan312-v11{margin:0;background:var(--o-bg);color:var(--o-cream);font-family:"Noto Sans KR","Apple SD Gothic Neo",sans-serif}
.o312-wrap{width:min(1480px,calc(100% - 42px));margin:auto}
.o312-hero{padding:104px 0 55px;background:radial-gradient(circle at 50% 0,rgba(211,171,83,.13),transparent 33%),#07101A}
.o312-title{text-align:center;max-width:1000px;margin:0 auto 30px}
.o312-kicker{color:var(--o-gold);letter-spacing:.2em;font-size:11px;font-weight:1000}
.o312-title h1{font-family:"Nanum Myeongjo",serif;font-size:clamp(50px,6vw,86px);line-height:1.1;letter-spacing:-.06em;margin:15px 0 20px}
.o312-title p{color:var(--o-muted);font-size:17px;line-height:1.85}
.o312-hero-image{overflow:hidden;border:1px solid var(--o-line);border-radius:30px;background:#101820;box-shadow:0 32px 100px rgba(0,0,0,.38)}
.o312-hero-image img{display:block;width:100%;height:auto}
.o312-palette{display:grid;grid-template-columns:repeat(12,1fr);gap:5px;margin-top:16px}
.o312-color{min-height:64px;border-radius:12px;padding:8px 4px;text-align:center;color:#fff;font-size:10px;font-weight:900;display:flex;flex-direction:column;justify-content:center;gap:4px}
.o312-color.light{color:#18202A}
.o312-color b{font-size:12px}

.o312-tabs{position:sticky;top:72px;z-index:80;background:rgba(6,14,24,.96);border-top:1px solid var(--o-line);border-bottom:1px solid var(--o-line);backdrop-filter:blur(14px)}
.o312-tabs .o312-wrap{display:flex;gap:8px;padding:13px 0;overflow:auto;scrollbar-width:none}
.o312-tabs .o312-wrap::-webkit-scrollbar{display:none}
.o312-tab{flex:0 0 auto;border:1px solid var(--o-line);border-radius:999px;background:rgba(255,255,255,.025);color:#D6C49D;padding:10px 16px;font-weight:900;cursor:pointer}
.o312-tab.active{background:var(--o-gold);border-color:var(--o-gold);color:#171006}

.o312-panel{display:none;min-height:720px;padding:76px 0}
.o312-panel.active{display:block}
.o312-heading{max-width:900px;margin-bottom:30px}
.o312-heading small{color:var(--o-gold);letter-spacing:.16em;font-weight:1000}
.o312-heading h2{font-family:"Nanum Myeongjo",serif;font-size:clamp(39px,4.8vw,65px);line-height:1.2;letter-spacing:-.052em;margin:10px 0 15px}
.o312-heading p{color:var(--o-muted);font-size:16px;line-height:1.82}
.o312-visual{overflow:hidden;border-radius:28px;border:1px solid var(--o-line);background:#101820;box-shadow:0 28px 85px rgba(0,0,0,.31)}
.o312-visual img{display:block;width:100%;height:auto;filter:none;opacity:1}

.o312-overview-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:28px;align-items:start}
.o312-summary{display:grid;gap:13px}
.o312-summary-card{padding:22px;border-radius:20px;border:1px solid var(--o-line);background:linear-gradient(180deg,rgba(20,31,43,.9),rgba(10,18,28,.9))}
.o312-summary-card b{display:block;color:#FFE6A6;font-size:19px;margin-bottom:7px}
.o312-summary-card p{margin:0;color:#C6B590;font-size:14px;line-height:1.7}

.o312-zone-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.o312-zone{overflow:hidden;border-radius:26px;border:1px solid var(--o-line);background:#0B151F;box-shadow:0 25px 75px rgba(0,0,0,.29)}
.o312-zone figure{margin:0;aspect-ratio:3/2;overflow:hidden}
.o312-zone img{width:100%;height:100%;object-fit:cover;display:block}
.o312-zone div{padding:22px}
.o312-zone h3{font-size:27px;margin:0 0 8px;color:#FFE5A5}
.o312-zone p{color:#C5B38E;font-size:14px;line-height:1.72}
.o312-zone ul{padding-left:18px;color:#BBAA88;font-size:13px;line-height:1.85}

.o312-body-grid{display:grid;grid-template-columns:minmax(420px,650px) 1fr;gap:30px;align-items:start}
.o312-body-map{position:sticky;top:145px}
.o312-system-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.o312-system-card{--c:#D4AE5A;border:1px solid rgba(225,190,111,.16);border-left:5px solid var(--c);border-radius:18px;background:rgba(14,24,35,.88);padding:16px;cursor:pointer;transition:.2s}
.o312-system-card:hover,.o312-system-card.active{transform:translateY(-2px);border-color:var(--c);box-shadow:0 15px 45px rgba(0,0,0,.25)}
.o312-system-card-head{display:flex;align-items:center;gap:11px}
.o312-orb{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--c);font-size:19px}
.o312-system-card h3{margin:0;color:#FFE5A5;font-size:18px}
.o312-system-card small{color:#9E927C}
.o312-system-card p{margin:9px 0 0;color:#C0AF8C;font-size:12px;line-height:1.55}
.o312-detail{margin-top:18px;padding:28px;border-radius:25px;background:linear-gradient(145deg,#F6E7C1,#D6AF63);color:#2D1D08}
.o312-detail-head{display:flex;justify-content:space-between;gap:20px;align-items:start}
.o312-detail h3{font-size:32px;margin:0 0 9px}
.o312-detail-color{width:72px;height:72px;border-radius:50%;box-shadow:0 12px 35px rgba(0,0,0,.2)}
.o312-detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:17px}
.o312-detail-grid div{padding:13px;border-radius:14px;background:rgba(255,255,255,.36);font-size:13px}
.o312-detail-grid b{display:block;margin-bottom:4px;font-size:11px}
.o312-foods{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.o312-foods span{padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.5);font-size:12px;font-weight:900}

.o312-civilization{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.o312-civ-card{padding:23px;border:1px solid var(--o-line);border-radius:22px;background:linear-gradient(180deg,rgba(20,31,43,.85),rgba(10,18,28,.88))}
.o312-civ-card h3{color:#FFE5A5;margin:0 0 10px}
.o312-civ-card p{color:#C3B18E;font-size:14px;line-height:1.75}
.o312-safety{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.o312-safety article{padding:25px;border-radius:23px;border:1px solid var(--o-line);background:rgba(255,255,255,.025)}
.o312-safety h3{color:#FFE3A0;margin-top:0}
.o312-safety p{color:#C6B590;line-height:1.78}
.o312-note{margin-top:22px;padding:18px 21px;border-left:3px solid var(--o-gold);background:rgba(212,174,90,.075);border-radius:0 17px 17px 0;color:#CBBB98}

@media(max-width:1100px){
  .o312-overview-grid,.o312-body-grid{grid-template-columns:1fr}
  .o312-body-map{position:static;max-width:700px}
  .o312-zone-grid{grid-template-columns:1fr}
}
@media(max-width:760px){
  .o312-wrap{width:calc(100% - 28px)}
  .o312-palette{grid-template-columns:repeat(4,1fr)}
  .o312-system-grid,.o312-detail-grid,.o312-civilization,.o312-safety{grid-template-columns:1fr}
  .o312-tabs{top:72px}
}


/* ==========================================================
   V8.12 · Anatomical 12-Color Body Map
   Full poster is always visible; no object-fit cropping.
   ========================================================== */
.o312-anatomical-map{
  background:#050b14;
  padding:14px;
}
.o312-anatomical-map>a{
  display:block;
  width:100%;
  border-radius:19px;
  overflow:hidden;
  background:#06101a;
}
.o312-anatomical-map img{
  width:100%;
  height:auto;
  max-height:none;
  object-fit:contain;
  object-position:center top;
  display:block;
  filter:none;
  opacity:1;
}
.o312-map-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  padding:14px 5px 3px;
}
.o312-map-actions a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:0 17px;
  border:1px solid rgba(229,195,119,.32);
  border-radius:999px;
  color:#f2dca7;
  text-decoration:none;
  font-size:13px;
  font-weight:900;
  background:rgba(212,174,90,.06);
}
.o312-map-actions a:first-child{
  background:linear-gradient(135deg,#efd083,#b47b26);
  color:#171006;
  border-color:transparent;
}
.o312-anatomical-intro{
  display:grid;
  grid-template-columns:240px 1fr;
  gap:25px;
  align-items:center;
  margin-bottom:25px;
  padding:20px;
  border:1px solid var(--o-line);
  border-radius:24px;
  background:linear-gradient(180deg,rgba(20,31,43,.88),rgba(9,17,27,.9));
}
.o312-anatomical-intro img{
  width:100%;
  height:auto;
  max-height:330px;
  object-fit:contain;
  display:block;
  border-radius:17px;
  background:#06101a;
}
.o312-anatomical-intro h3{
  color:#ffe5a5;
  font-size:27px;
  margin:0 0 10px;
}
.o312-anatomical-intro p{
  color:#c5b38e;
  font-size:14px;
  line-height:1.8;
  margin:0;
}
@media(max-width:760px){
  .o312-anatomical-intro{grid-template-columns:1fr}
  .o312-anatomical-intro img{max-height:520px}
  .o312-map-actions{flex-direction:column}
  .o312-map-actions a{width:100%}
}
