/* Laws of Simplicity 형식: 아이보리 종이(라이트) / 먹색(다크), 도트 매트릭스 라벨, 세리프 본문, 점으로 찍은 아이콘, 오른쪽 가장자리에 걸친 그림 */
:root{
  --paper:#f3eee3; --ink:#1a1916; --muted:#6e6a62; --rule:#ddd6c8; --soft:#ebe5d8; --link:#5a6b8c; color-scheme:light;
  --dot:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --serif:"Newsreader","Noto Serif KR",Georgia,serif;
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){
  --paper:#0f0f11; --ink:#ececea; --muted:#9a9a9e; --rule:#2a2a2e; --soft:#18181b; --link:#9fb0d0; color-scheme:dark } }
:root[data-theme="dark"]{ --paper:#0f0f11; --ink:#ececea; --muted:#9a9a9e; --rule:#2a2a2e; --soft:#18181b; --link:#9fb0d0; color-scheme:dark }

*{box-sizing:border-box}
html,body{overflow-x:clip}
body{margin:0;background:var(--paper);color:var(--ink);font:18px/1.6 var(--serif);padding-inline:24px;word-break:keep-all;overflow-wrap:anywhere;-webkit-font-smoothing:antialiased}
a{color:inherit}
a:focus-visible,input:focus-visible,canvas:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.dot{font:500 13px/1.4 var(--dot);letter-spacing:.08em;margin:0}

/* 상단 */
.top{display:flex;justify-content:space-between;align-items:center;gap:16px;max-width:1480px;margin:0 auto;padding-block:24px 56px}
.brand{font:600 24px var(--serif);text-decoration:none;letter-spacing:-.01em}
.brand span{font-weight:400;color:var(--muted)}
.top nav{display:flex;align-items:center;gap:20px;font:500 13px var(--dot);white-space:nowrap}
.brand{white-space:nowrap}
.top nav a{text-decoration:none;color:var(--muted)} .top nav a:hover{color:var(--ink)}
.theme{font:500 13px var(--dot);color:var(--muted);background:none;border:1px solid var(--rule);border-radius:999px;padding:2px 12px;cursor:pointer}
.theme:hover{color:var(--ink);border-color:var(--ink)}
.theme:focus-visible{outline:2px solid var(--ink);outline-offset:3px}

/* 목록 + 오른쪽 태극 */
.stage{display:grid;grid-template-columns:minmax(0,880px) minmax(0,1fr);gap:40px;max-width:1480px;margin:0 auto}
.laws{min-width:0}
.group{margin-bottom:56px;scroll-margin-top:24px}
.group-head{display:flex;align-items:baseline;gap:18px;border-bottom:1px solid var(--rule);padding-bottom:10px;margin-bottom:36px}
.group-head .ko{font:400 15px var(--serif);color:var(--muted)}
.grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:56px 40px}
.law{display:grid;grid-template-columns:112px minmax(0,1fr);gap:28px;text-decoration:none;align-items:start}
.law svg{width:112px;height:112px;display:block;color:var(--ink)}
.law .dot{font-size:13px;margin:6px 0 10px;color:var(--muted)}
.law .ko{font:400 21px/1.55 var(--serif);margin:0}
.law:hover .ko{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}

.plate{position:relative;min-width:0}
.plate .pin{position:sticky;top:24px}
.plate-stage{width:118%;aspect-ratio:1;margin-left:-6%}
.plate-ui{max-width:340px;margin-top:20px}
.mix{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;font:500 12px var(--dot);letter-spacing:.06em}
.mix a{color:var(--muted);text-decoration:none} .mix a:hover{color:var(--ink)}
.mix input{width:100%;accent-color:var(--ink)}
.credit{font:400 12px/1.5 var(--dot);letter-spacing:.04em;color:var(--muted);margin:12px 0 0}
.credit a{color:var(--link)}
.now{display:block;text-decoration:none;margin-top:18px;padding-top:14px;border-top:1px solid var(--rule);min-height:8.5em}
.now .dot{color:var(--muted);margin-bottom:6px}
.now .ko{font-size:19px;margin:0 0 6px}
.now .def{font-size:15px;line-height:1.7;color:var(--muted);margin:0}
.now:hover .ko{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}

/* 마무리 */
.closing{max-width:880px;margin:24px auto 0 0;padding-top:28px;border-top:1px solid var(--rule)}
.stage + .closing{margin-left:max(0px, calc((100% - 1480px)/2))}
.closing #closing{font-size:22px;line-height:1.7;max-width:36ch;margin-top:22px}
.closing #closing p{margin:0 0 14px}

.foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;border-top:1px solid var(--rule);margin-top:96px;padding-block:28px 40px;
  background:var(--soft);margin-inline:-24px;padding-inline:24px;font-size:14px;color:var(--muted)}
.foot .rights{max-width:62ch}
.foot .rights p{margin:0 0 6px}
.foot .rights p:first-child{color:var(--ink)}
.foot .src{margin:0}
.foot a{color:var(--link)}
.foot .contact{flex-basis:100%;margin:8px 0 0;padding-top:16px;border-top:1px solid var(--rule)}

/* 상세 */
#law{max-width:560px;margin:0 auto}
.crumbs{font-size:15px;color:var(--muted);margin:0 0 28px}
.crumbs a{text-decoration:none} .crumbs a:hover{text-decoration:underline}
#law .icon svg{width:104px;height:104px;display:block}
#law .label{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border-bottom:1px solid var(--rule);padding:22px 0 14px;margin-bottom:34px}
#law .label .group{font:400 14px var(--serif);color:var(--muted);margin:0}
#law h1:focus{outline:none}
#law h1{font:600 21px/1.6 var(--serif);margin:0 0 6px}
#law .def{font-weight:600;margin:0 0 28px}
#law .cite{margin:0 0 28px}
#law .cite a{color:var(--link);text-decoration:none} #law .cite a:hover{text-decoration:underline}
#law .body p{margin:0 0 26px;font-size:17px;line-height:1.85}
#law .extra{margin:0 0 36px} #law .cube-stage{width:100%;aspect-ratio:1;margin-bottom:10px;background:var(--paper)} #law .extra video{margin-bottom:10px} #law .extra figcaption{color:var(--muted)}
#law video{width:100%;max-width:360px;aspect-ratio:4/5;display:block;background:#0d0d10;margin:8px 0 36px}
.next{display:grid;grid-template-columns:56px 1fr;gap:20px;align-items:center;border:1px solid var(--rule);padding:18px 22px;max-width:420px;text-decoration:none;margin-top:12px}
.next .icon{display:block;width:56px;height:56px;overflow:hidden}
.next svg,#law .next .icon svg{width:56px;height:56px;display:block}   /* #law .icon svg(104px)가 덮어쓰지 않게 */
.next .dot{font-size:13px;margin-bottom:4px}
.next span{font-size:15px}
.next:hover{background:var(--soft)}

@media (max-width:1100px){
  .stage{grid-template-columns:1fr}
  .plate{order:-1;max-width:520px;margin:0 auto 56px}
  .plate .pin{position:static}
  .plate-stage{width:100%;margin-left:0}
  .plate-ui{max-width:none}
  .closing{margin-left:0}
}
@media (max-width:700px){
  body{padding-inline:18px;font-size:17px}
  .top{align-items:center;padding-block:18px 40px}
  .brand{font-size:20px}
  .top nav{gap:12px;font-size:12px}
  .theme{padding:2px 9px;font-size:12px}
  .foot{margin-inline:-18px;padding-inline:18px}
  .grid{grid-template-columns:1fr;gap:40px}
  .law{grid-template-columns:72px minmax(0,1fr);gap:18px}
  .law svg{width:72px;height:72px}
  .law .ko{font-size:19px}
}
