:root { color-scheme: light; --green:#00a950; --button-green:#006c48; --ink:#000; }
* { box-sizing:border-box; }
html, body { width:100%; height:100%; margin:0; overflow:hidden; background:#fff; color:var(--ink); font-family:Arial,"Apple SD Gothic Neo","Noto Sans KR",sans-serif; }
button, input, a { font:inherit; color:inherit; }
input[type="checkbox"], input[type="radio"] { accent-color:var(--button-green); }
button { cursor:pointer; }
a { text-decoration:none; }
a:hover { text-decoration:underline; }
button:focus-visible, a:focus-visible, input:focus-visible, #viewport:focus-visible { outline:2px solid #000; outline-offset:2px; }
[hidden] { display:none !important; }
.publication { position:fixed; z-index:6; top:0; left:0; right:0; display:grid; grid-template-columns:1fr auto 1fr; align-items:start; gap:2px; background:transparent; font-size:14px; line-height:1.3; pointer-events:none; }
.publication-clock, .language-switch { display:flex; align-items:center; gap:2px; }
.publication-clock { justify-self:start; font-variant-numeric:tabular-nums; }
.publication-brand { display:flex; justify-content:center; }
.nav-box { display:inline-flex; align-items:center; justify-content:center; border:0; border-bottom:1px solid rgba(0,0,0,.08); border-right:1px solid rgba(0,0,0,.08); border-radius:0; padding:7px 15px; min-height:34px; margin:0; background:#fff; color:#000; font-weight:500; letter-spacing:-.01em; white-space:nowrap; pointer-events:auto; }
.language-switch { justify-self:end; pointer-events:auto; }
.language-switch .nav-box[aria-pressed="true"], #account[aria-expanded="true"] { text-decoration:underline; text-underline-offset:4px; }
#viewport { position:absolute; inset:0; overflow:hidden; outline:none; touch-action:none; }
#sheet { position:absolute; z-index:1; left:0; top:0; width:3016px; transform-origin:0 0; will-change:transform; }
#easter-egg { position:absolute; right:17px; top:50%; transform:translateY(-50%); width:min(62vw,780px); height:auto; max-height:78%; object-fit:contain; pointer-events:none; user-select:none; }
table { width:100%; table-layout:fixed; border-collapse:collapse; border:1px solid #000; font-size:14px; font-weight:400; line-height:1; background:#fff; }
tr { height:28px; }
td, th { height:28px; max-height:28px; padding:0 4px; border:.65px solid #000; vertical-align:middle; text-align:left; font-weight:400; white-space:nowrap; overflow:hidden; }
.cell-text { display:block; line-height:24px; overflow:hidden; text-overflow:clip; white-space:nowrap; }
.column-sort { display:block; width:100%; height:24px; padding:0; border:0; border-radius:0; background:transparent; text-align:left; white-space:nowrap; font-size:inherit; line-height:24px; }
th[aria-sort] .column-sort { text-decoration:underline; text-underline-offset:3px; }
.row-open { display:block; width:100%; height:24px; padding:0; border:0; border-radius:0; background:transparent; text-align:left; white-space:nowrap; overflow:hidden; font-size:inherit; line-height:24px; }
.check-cell { display:flex; align-items:center; gap:6px; height:24px; }
.check-cell input { flex:0 0 14px; width:14px; height:14px; margin:0; cursor:pointer; }
.check-cell .cell-text, .check-cell .column-sort { flex:1; min-width:0; }
tr[data-id] { cursor:pointer; }
tr[data-id]:hover .row-open { text-decoration:underline; }
.dock { position:fixed; z-index:5; bottom:max(18px,env(safe-area-inset-bottom)); left:50%; transform:translateX(-50%); width:min(1060px,calc(100vw - 32px)); }
.tags { display:flex; justify-content:center; flex-wrap:wrap; gap:4px; margin:0 0 9px; }
.tag { border:1px solid #000; border-radius:0; padding:5px 8px; background:#fff; color:#000; font-size:11px; line-height:1.15; min-height:27px; white-space:nowrap; transition:background-color 120ms,color 120ms,transform 90ms; }
.tag[aria-pressed="true"] { background:var(--button-green); color:#fff; }
.tag:active, .nav-box:is(button):active { transform:translateY(2px); }
.search-glass { display:flex; align-items:center; gap:9px; height:44px; padding:0 12px; border:1px solid rgba(0,0,0,.55); border-radius:4px; background:rgba(255,255,255,.74); -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px); box-shadow:0 2px 16px rgba(0,0,0,.08); }
.search-icon { flex:0 0 auto; }
#search { flex:1; min-width:0; width:100%; padding:8px 0; background:transparent; border:0; border-radius:0; font-size:12px; appearance:none; outline:none; }
#search::placeholder { color:#000; opacity:.6; }
#search:focus-visible { outline:0; }
#result-count { font-size:10px; font-variant-numeric:tabular-nums; min-width:25px; text-align:right; }
.zoom-controls { display:flex; align-items:center; gap:2px; margin-left:5px; }
.zoom-controls button, #help { background:none; border:0; padding:0; min-width:27px; height:32px; font-size:15px; line-height:1; }
#zoom-fit { font-size:10px; min-width:32px; }
#help { font-size:12px; min-width:18px; }
#print { background:none; border:0; padding:0 3px; height:32px; font-size:10px; min-width:40px; }
#print[aria-expanded="true"] { text-decoration:underline; text-underline-offset:3px; }
#empty { position:absolute; top:40%; left:50%; transform:translateX(-50%); font-size:12px; }
.paper-card { position:fixed; top:88px; bottom:auto; margin:0 auto; width:min(600px,calc(100vw - 32px)); max-height:calc(100dvh - 165px); padding:18px 20px; border:1px solid #000; border-radius:0; background:#fff; color:#000; font-size:14px; line-height:1.75; text-align:left; word-break:keep-all; overflow-wrap:normal; hyphens:none; -webkit-hyphens:none; overflow:auto; box-shadow:0 8px 28px rgba(0,0,0,.12); }
.paper-card[open] { animation:card-in 240ms cubic-bezier(.16,1,.3,1); }
.paper-card::backdrop { background:rgba(0,0,0,.28); }
.card-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:0 0 20px; font-size:14px; }
.card-heading > :first-child { min-width:0; }
.card-heading > span:focus { outline:none; }
.paper-card > .sr-only:focus { outline:none; }
.close-card { display:inline-flex; align-items:center; justify-content:center; flex:0 0 26px; width:26px; height:26px; margin-left:auto; background:transparent; border:0; padding:5px; }
.close-card:focus-visible { outline-width:1px; outline-offset:1px; }
.project-check { display:inline-flex; align-items:center; gap:5px; margin-left:auto; font-size:11px; white-space:nowrap; cursor:pointer; }
.project-check input { width:12px; height:12px; margin:0; cursor:pointer; }
.project-check ~ .close-card { margin-left:0; }
#project-title { min-width:0; overflow-wrap:anywhere; }
#project-dialog .document-language { flex-shrink:0; }
.paper-card p { margin:0 0 14px; }
.project-description { white-space:pre-line; overflow-wrap:anywhere; }
.project-flow { margin:0 0 14px; font-size:13px; }
.project-flow > div { display:flex; align-items:baseline; gap:14px; margin:4px 0; }
.project-flow dt { min-width:27px; }
.project-flow dd { margin:0; }
.project-note { font-size:12px; }
#project-attachments { margin:0 0 16px; }
.capture-gallery { margin:0; }
.capture-view { position:relative; height:clamp(220px,50dvh,560px); border:0; outline:none; }
.capture-image { display:block; width:100%; height:100%; object-fit:contain; border:0; outline:none; user-select:none; }
.capture-zone { position:absolute; top:0; bottom:0; width:50%; padding:0; border:0; border-radius:0; background:transparent; outline:none; }
.capture-zone:focus-visible { outline:none; }
.capture-previous { left:0; }
.capture-next { right:0; }
.capture-zone:disabled { cursor:default; }
.capture-gallery figcaption { display:flex; justify-content:center; margin-top:8px; font-size:11px; }
.capture-counter { font-variant-numeric:tabular-nums; white-space:nowrap; }
.capture-view:focus-visible + figcaption .capture-counter, .capture-view:has(.capture-zone:focus-visible) + figcaption .capture-counter { text-decoration:underline; text-underline-offset:3px; }
.card-links { display:flex; flex-wrap:wrap; align-items:center; gap:8px 18px; padding-top:12px; border-top:1px solid #000; font-size:12px; }
.platform-link { display:inline-flex; align-items:center; gap:6px; }
.platform-link img { display:block; width:15px; height:15px; object-fit:contain; }
.card-links a, .archive-socials a { text-decoration:underline; text-underline-offset:3px; }
.welcome-card { width:min(640px,calc(100vw - 32px)); }
.document-tabs { display:flex; align-items:center; gap:8px; margin:0; white-space:nowrap; flex-shrink:0; max-width:100%; }
.document-tabs a { font-size:14px; }
.document-tabs a[aria-current="page"] { text-decoration:underline; text-underline-offset:4px; }
.document-heading { flex-wrap:wrap; gap:6px 8px; }
.document-actions { display:flex; align-items:center; gap:8px; margin-left:auto; white-space:nowrap; flex-shrink:0; }
.document-language { padding:2px; min-width:24px; border:0; background:none; font-size:13px; }
.document-actions .close-card { margin-left:0; }
.document-body p { margin:0 0 19px; }
.document-body section { margin:27px 0; }
.document-body h2 { font-size:14px; font-weight:600; margin:0 0 8px; }
.document-body section > p, .document-body section > .document-sources { margin-left:20px; }
.term-link { text-decoration:underline; text-underline-offset:3px; }
.document-sources { display:flex; flex-wrap:wrap; gap:6px 14px; font-size:11px; }
.document-sources a { text-decoration:underline; text-underline-offset:3px; }
.archive-socials { display:flex; flex-wrap:wrap; align-items:center; gap:10px 12px; border-top:1px solid #000; padding-top:13px; margin-top:22px; font-size:11px; }
.social-group { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; }
.social-contact { display:flex; align-items:center; gap:12px; margin-left:auto; white-space:nowrap; }
.list-empty-card { width:min(380px,calc(100vw - 32px)); }
.stack-card { top:60px; width:min(680px,calc(100vw - 24px)); max-height:calc(100dvh - 128px); }
.stack-card::backdrop { background:rgba(0,0,0,.15); }
.footnote-card { top:42px; width:min(520px,calc(100vw - 24px)); max-height:calc(100dvh - 114px); }
.footnote-card::backdrop { background:rgba(0,0,0,.15); }
.print-card { width:min(510px,calc(100vw - 32px)); }
.print-options { margin:0 0 15px; padding:0; border:0; }
.print-options legend { padding:0; margin-bottom:5px; font-size:12px; }
.print-options > label { display:flex; align-items:center; gap:7px; padding:3px 0; font-size:12px; }
.print-options input { margin:0; cursor:pointer; }
.paper-sizes { display:flex; gap:5px; }
.paper-sizes label { flex:1; display:flex; align-items:center; justify-content:center; gap:6px; min-height:34px; border:1px solid #000; background:#fff; font-size:12px; cursor:pointer; }
.paper-sizes label:has(input:checked) { background:var(--button-green); color:#fff; }
.print-preview { font-size:14px; font-variant-numeric:tabular-nums; }
.print-detail { font-size:11px; line-height:1.65; }
details.print-detail { margin:0 0 14px; }
.print-detail summary { cursor:pointer; }
.print-detail summary:focus-visible { outline:1px solid #000; outline-offset:2px; }
.print-detail > p { margin:8px 0 0; }
.print-actions { position:sticky; bottom:0; display:flex; align-items:center; gap:12px; padding:12px 0 4px; border-top:1px solid #000; background:#fff; }
.print-actions > span { font-size:11px; }
#download-pdf { background:var(--button-green); color:#fff; padding:7px 10px; }
#download-pdf:disabled { opacity:.45; cursor:default; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@keyframes card-in { from { opacity:0; transform:translateY(-70px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:600px) {
  .publication { grid-template-rows:auto auto; gap:2px; font-size:11px; }
  .publication-clock { grid-row:2; grid-column:1 / 3; }
  .publication-brand { display:contents; }
  #account { grid-row:1; grid-column:2; font-size:12px; }
  .language-switch { grid-row:1; grid-column:3; gap:2px; }
  .nav-box { padding:7px 8px; min-height:31px; }
  #easter-egg { right:10px; width:72vw; }
  .dock { width:calc(100vw - 20px); bottom:max(10px,env(safe-area-inset-bottom)); }
  .tags { flex-wrap:nowrap; justify-content:flex-start; overflow-x:auto; padding:2px 2px 5px; margin-bottom:4px; scrollbar-width:none; }
  .tags::-webkit-scrollbar { display:none; }
  .tag { font-size:11px; padding:7px 9px; min-height:31px; }
  .search-glass { gap:6px; padding:0 8px; }
  #search { font-size:16px; }
  #search::placeholder { font-size:11px; }
  .zoom-controls { margin-left:0; gap:0; }
  .zoom-controls button { min-width:25px; }
  #result-count { min-width:22px; }
  .paper-card { top:96px; max-height:calc(100dvh - 190px); padding:15px; }
  .stack-card { top:73px; max-height:calc(100dvh - 151px); }
  .footnote-card { top:50px; max-height:calc(100dvh - 130px); }
  .card-heading { gap:7px; font-size:13px; }
  .document-tabs { gap:6px; }
  .document-tabs a { font-size:13px; }
  .document-body section > p, .document-body section > .document-sources { margin-left:14px; }
}
@media(prefers-reduced-motion:reduce) { .paper-card[open] { animation:none; } .tag { transition:none; } .tag:active, .nav-box:is(button):active { transform:none; } }
@media print { .dock, dialog, #easter-egg { display:none !important; } html,body { height:auto; overflow:visible; } #viewport { position:static; overflow:visible; } #sheet { position:static; transform:none !important; } }
