:root{color-scheme:dark;--bg:#090c11;--panel:#11151c;--panel2:#171b23;--line:#292b30;--gold:#c4a66b;--gold-bright:#ead39a;--muted:#9a9ba1;--text:#e9e4da;--red:#9f4651;--green:#8fa98d;--violet:#a999c9;font-family:Inter,"Noto Sans KR","Malgun Gothic",system-ui,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(ellipse at 78% 0%,#24191b 0,transparent 38%),var(--bg);color:var(--text);min-height:100vh}button,input,textarea,select{font:inherit}button,a{touch-action:manipulation}button{color:inherit}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:258px;padding:28px 20px 20px;background:linear-gradient(180deg,#111319f5,#0b0e13f8);border-right:1px solid #302b27;display:flex;flex-direction:column;z-index:8}.brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none}.emblem{width:42px;height:42px;display:grid;place-items:center;border:1px solid #947a4c;color:var(--gold-bright);font-family:serif;font-size:26px;transform:rotate(45deg)}.emblem::first-letter{transform:rotate(-45deg)}.brand-name,.brand-sub{display:block}.brand-name{font:700 21px Georgia,serif;letter-spacing:.16em}.brand-sub{font-size:9px;letter-spacing:.13em;color:#a4a0a0;margin-top:5px}.workspace{margin:38px 0 26px;padding:14px;border:1px solid #28292d;background:#17171a;display:flex;gap:11px;align-items:center}.workspace-dot,.status-dot{width:8px;height:8px;border-radius:50%;background:#879d7c;box-shadow:0 0 10px #879d7c66}.workspace small,.workspace strong{display:block}.workspace small{font-size:9px;letter-spacing:.15em;color:#888}.workspace strong{font:15px Georgia,serif;margin-top:4px}.nav-caption,.eyebrow{font-size:10px;letter-spacing:.16em;color:#aa9160}.nav-caption{margin:8px 0 10px;padding-left:10px}.side-nav{display:grid;gap:5px}.nav-btn{border:1px solid transparent;background:transparent;text-align:left;padding:12px 10px;color:#b9b6b0;cursor:pointer;transition:.2s}.nav-btn span{display:inline-block;width:26px;color:var(--gold);font-size:15px}.nav-btn:hover,.nav-btn.active{border-color:#52462f;background:#c3a35d12;color:#f0e5d0}.sidebar-foot{margin-top:auto;color:#b1aba0;font-size:11px;display:grid;grid-template-columns:12px 1fr;gap:8px;align-items:center}.sidebar-foot small{grid-column:2;color:#77787d;font-size:10px}.main-area{margin-left:258px;min-height:100vh}.topbar{height:68px;position:sticky;top:0;z-index:5;background:#0c0f14eF;backdrop-filter:blur(16px);border-bottom:1px solid #25272b;padding:0 clamp(18px,4vw,56px);display:flex;align-items:center;justify-content:space-between}.top-left,.top-actions{display:flex;align-items:center;gap:13px}.breadcrumb{font-size:12px;color:#8e8b85}.breadcrumb b{color:#5d5b58;margin:0 10px}.breadcrumb strong{color:#e5dfd4;font-weight:500}.sync-label{font-size:11px;color:#9c9b97}.button{border:1px solid #514631;background:transparent;color:#e4d7b9;text-decoration:none;padding:10px 15px;min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:9px;cursor:pointer;transition:.2s}.button:hover{border-color:#b99b5a;background:#ba9a5516}.button-gold{background:linear-gradient(120deg,#a98648,#735a33);border-color:#c4a66b;color:#100e0c;font-weight:700}.button-gold:hover{background:linear-gradient(120deg,#d1b16c,#a17c42);color:#090807}.button-outline{font-size:12px}.content{max-width:1440px;margin:auto;padding:36px clamp(18px,4vw,56px) 70px}.hero{min-height:235px;border:1px solid #302b26;background:linear-gradient(110deg,#11141bea,#11141bce),radial-gradient(circle at 84% 50%,#59402c77,transparent 25%);padding:34px clamp(22px,4vw,50px);display:flex;align-items:center;justify-content:space-between;position:relative;overflow:hidden}.hero h1{font:clamp(26px,3.5vw,42px)/1.32 Georgia,"Noto Serif KR",serif;font-weight:500;margin:15px 0 10px;letter-spacing:.03em}.hero p{font-size:13px;color:#aaa9a5;margin:0 0 22px}.hero-sigil{width:140px;height:140px;color:#9e7847;opacity:.55;margin-right:7%;filter:drop-shadow(0 0 18px #a77b3b22)}.hero-sigil svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.2}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:20px 0}.metric,.panel{border:1px solid #292a2d;background:linear-gradient(145deg,#14171d,#101217);padding:19px}.metric span,.metric small{display:block;color:#a5a19a;font-size:11px}.metric strong{display:block;font:30px Georgia,serif;color:var(--gold-bright);margin:10px 0 6px}.overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.panel-heading,.section-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.panel h2,.section-heading h2,.section-heading h1{font:22px Georgia,"Noto Serif KR",serif;font-weight:500;margin:6px 0}.completion-rate{font:24px Georgia,serif;color:var(--gold-bright)}.progress-track{display:block;width:100%;height:8px;border:0;background:transparent;margin:24px 0 14px;overflow:hidden;appearance:none}.progress-track::-webkit-progress-bar{background:#29282a}.progress-track::-webkit-progress-value{background:linear-gradient(90deg,#795d35,#d5b66d);transition:width .4s}.progress-track::-moz-progress-bar{background:linear-gradient(90deg,#795d35,#d5b66d)}.status-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:10px;color:#aaa}.legend-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px;background:var(--gold)}.legend-dot.done{background:var(--green)}.legend-dot.review{background:var(--violet)}.legend-dot.planned{background:#7c838d}.panel-note,.section-heading p{font-size:11px;line-height:1.7;color:#888982}.recent-items{display:grid;gap:8px;margin-top:16px}.recent-row{display:grid;grid-template-columns:minmax(100px,1fr) auto auto;gap:10px;align-items:center;padding:10px;border-bottom:1px solid #292a2d;font-size:12px}.recent-row strong{color:#e6dfd1;font-weight:500}.section-heading{margin:38px 0 16px}.board-section{margin-top:36px}.filters{display:flex;gap:8px;overflow:auto;padding:4px 0 12px}.filter-chip{white-space:nowrap;border:1px solid #3b3936;background:#15171c;color:#b4afa5;padding:8px 11px;cursor:pointer}.filter-chip.active{border-color:#a68a55;color:#eddbb6;background:#bb995018}.public-issue-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.issue-card{border:1px solid #2c2c30;background:linear-gradient(145deg,#15181e,#101217);padding:14px;display:flex;align-items:center;gap:12px;min-height:76px}.issue-number{font:16px Georgia,serif;color:var(--gold)}.issue-meta{min-width:0;flex:1}.issue-meta strong{font-weight:500;font-size:13px}.issue-meta small{display:block;color:#83858a;font-size:10px;margin-top:5px}.badge{font-size:10px;padding:5px 8px;border:1px solid #4a453b;color:#d6c59e;white-space:nowrap}.badge.done{color:#b7cfaa;border-color:#46563e}.badge.review{color:#c8b8e7;border-color:#55476b}.badge.work{color:#e3b77c;border-color:#635039}.privacy-note{font-size:10px;color:#7f8085;margin-top:14px}.empty-state{padding:18px;color:#929196;font-size:12px;border:1px dashed #38383a;text-align:center}.admin-content{max-width:none}.admin-banner{border:1px solid #5b4831;background:#261f18;padding:14px 18px;display:flex;align-items:center;gap:14px;margin-bottom:28px;color:#d9c69f}.admin-banner strong{font:18px Georgia,serif}.admin-banner span:last-child{font-size:11px;color:#a69e91}.private-badge{color:#dda8ab;border:1px solid #6e3b42;padding:6px 10px;font-size:11px}.story-content{display:grid;gap:12px}.story-card{border:1px solid #3a3030;background:linear-gradient(145deg,#1a171a,#111217);padding:20px}.story-card h2{font:19px Georgia,serif;color:#dfc891;margin:0 0 10px}.story-card p{line-height:1.9;color:#c8c0b4;font-size:13px;white-space:pre-line}.admin-issue-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:14px}.admin-issue-list{display:grid;gap:7px;align-content:start}.admin-issue-row{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid #303034;background:#14161c;padding:12px;cursor:pointer}.admin-issue-row:hover,.admin-issue-row.selected{border-color:#967948}.admin-issue-row strong{font-size:12px;font-weight:500}.admin-issue-row small{display:block;color:#8c8b8d;margin-top:5px}.editor{position:sticky;top:84px;align-self:start}.editor h2{margin-top:0}.editor label,.modal label{display:block;color:#c9bda5;font-size:11px;margin:12px 0 6px}.editor input,.editor textarea,.editor select,.modal input,.modal textarea,.modal select{width:100%;background:#0b0d11;border:1px solid #39383a;color:#eee5d6;padding:11px;outline:none}.editor input:focus,.editor textarea:focus,.editor select:focus,.modal input:focus,.modal textarea:focus,.modal select:focus{border-color:#b0945c}.editor textarea,.modal textarea{resize:vertical;min-height:110px}.editor-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.comments{border-top:1px solid #333;margin-top:18px;padding-top:14px}.comment{border-bottom:1px solid #29292c;padding:10px 0;font-size:12px;line-height:1.7;white-space:pre-wrap}.comment small{display:block;color:#87858a;margin-bottom:4px}.project-panel{margin-top:18px}.project-row{display:grid;grid-template-columns:1fr 160px 100px;gap:10px;align-items:center;padding:9px;border-bottom:1px solid #292a2d;font-size:12px}.project-row select{background:#0b0d11;color:#ddd;border:1px solid #424042;padding:7px}.notice{padding:12px;border:1px solid #785e37;color:#d8c292;font-size:12px;margin:12px 0}.form-error{color:#ef9fa7;font-size:12px}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#201d18;border:1px solid #75603b;padding:12px 16px;color:#ebd9b5;z-index:30;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}.modal{width:min(460px,calc(100vw - 28px));background:#111319;border:1px solid #665638;color:var(--text);padding:26px;box-shadow:0 20px 80px #000b}.modal::backdrop{background:#030407c9;backdrop-filter:blur(4px)}.modal h2{font:24px Georgia,serif;font-weight:500;margin:8px 0}.modal p{font-size:12px;color:#a4a0a0;line-height:1.7}.modal-close{float:right;background:none;border:0;color:#bcb4a5;font-size:24px;cursor:pointer}.submit-button{width:100%;margin-top:14px}.text-button{background:none;border:0;color:#c8ad76;cursor:pointer}.icon-button{background:none;border:1px solid #48413a;color:#c7b17d;width:40px;height:40px;cursor:pointer}.mobile-menu{display:none}.mobile-shade{display:none}
[hidden]{display:none!important}
@media(max-width:1100px){.sidebar{width:224px}.main-area{margin-left:224px}.overview-grid{grid-template-columns:1fr}.hero-sigil{margin-right:2%}.admin-issue-layout{grid-template-columns:1fr}.editor{position:static}}
@media(max-width:760px){.sidebar{transform:translateX(-102%);transition:transform .25s;width:min(300px,86vw);box-shadow:20px 0 50px #0008}.sidebar.open{transform:translateX(0)}.main-area{margin-left:0}.mobile-menu{display:block}.topbar{height:60px;padding:0 14px}.sync-label{display:none}.top-actions{gap:7px}.top-actions .button{padding:8px 10px;min-height:38px}.content{padding:22px 14px 50px}.hero{min-height:230px;padding:24px 20px}.hero-sigil{width:85px;height:85px;position:absolute;right:5px;opacity:.28}.hero-copy{position:relative;z-index:1}.hero h1{font-size:28px}.metrics{grid-template-columns:repeat(2,1fr);gap:8px}.metric{padding:14px}.metric strong{font-size:25px}.public-issue-grid{grid-template-columns:1fr}.issue-card{padding:12px}.section-heading{align-items:flex-start}.section-heading p{max-width:45%}.admin-banner{align-items:flex-start;flex-direction:column;gap:5px}.project-row{grid-template-columns:1fr auto}.project-row>*:last-child{grid-column:2}.mobile-shade{display:block;position:fixed;inset:0;background:#0009;z-index:7}.recent-row{grid-template-columns:minmax(80px,1fr) auto}.recent-row>*:last-child{display:none}}
@media(max-width:420px){.breadcrumb{font-size:10px}.breadcrumb b{margin:0 5px}.topbar{padding:0 9px}.top-actions .button{font-size:10px;padding:7px}.hero h1{font-size:24px}.metric strong{font-size:22px}.issue-card{gap:8px}.badge{font-size:9px;padding:4px 6px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}

/* Publicly safe GitHub token expiry metadata badge. */
.token-expiry{position:fixed;right:12px;bottom:12px;z-index:10;padding:6px 9px;border:1px solid #713b41;border-radius:4px;background:#130d0fe8;color:#ff777b;font-size:12px;line-height:1.35;letter-spacing:.01em;box-shadow:0 4px 16px #0007;pointer-events:none}
@media(max-width:760px){.token-expiry{right:10px;bottom:10px;max-width:calc(100vw - 20px);font-size:11px;padding:5px 8px}}

/* NOCTE development dashboard and private story bible */
.brand{cursor:pointer}.brand:focus-visible{outline:2px solid var(--gold);outline-offset:5px}
.dashboard-intro{border-bottom:1px solid #39312a;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:8px 0 22px}
.dashboard-intro h1{font:500 clamp(25px,3vw,34px)/1.3 Georgia,"Noto Serif KR",serif;color:#efe0bb;margin:8px 0 6px}
.dashboard-intro p{font-size:12px;color:#a7a4a0;margin:0}.dashboard-intro .button{white-space:nowrap}
.story-content{display:block;min-width:0}
.story-library-heading{display:flex;justify-content:space-between;align-items:start;gap:15px;border-bottom:1px solid #332b26;padding:7px 0 23px}
.story-library-heading h2{font:500 27px Georgia,"Noto Serif KR",serif;color:#ecdbba;margin:9px 0}
.story-library-heading>div>p:last-child{font-size:12px;color:#aca7a0;margin:0;line-height:1.6}
.story-tabs{display:flex;align-items:stretch;gap:6px;overflow-x:auto;scrollbar-width:thin;padding:20px 1px 13px;border-bottom:1px solid #2f2c2c;margin-bottom:24px}
.story-tab{flex:0 0 auto;border:1px solid #3f3833;background:#12151a;color:#c5bfb7;padding:10px 12px;cursor:pointer;font-size:12px;transition:background .15s}
.story-tab:hover,.story-tab:focus-visible{border-color:#a78e59}.story-tab.active{background:#4a3b283a;border-color:#ac8854;color:#f0d9a4}
.story-tab small{margin-left:7px;color:#aaa099;font-size:10px}
.story-group-heading{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:17px}
.story-group-heading h3{font:500 23px Georgia,"Noto Serif KR",serif;color:#e9d29b;margin:7px 0}
.story-group-heading p{font-size:12px;color:#a9a39b;margin:0}
.story-controls{display:flex;gap:7px;flex-shrink:0}.story-controls button{background:#1a1a1c;color:#d6c9b3;border:1px solid #554936;padding:8px 10px;cursor:pointer;font-size:11px}.story-controls button:hover{border-color:#b69a61}
.story-entries{display:grid;gap:10px}
.story-entry{border:1px solid #3b3230;background:linear-gradient(135deg,#191719,#101318);min-width:0}
.story-entry[open]{border-color:#69523c}.story-entry summary{list-style:none;display:flex;gap:14px;align-items:center;cursor:pointer;padding:18px 19px;min-height:62px}
.story-entry summary::-webkit-details-marker{display:none}
.story-entry summary:hover{background:#a98a4710}
.story-order{font:15px Georgia,serif;color:#a18756;flex:0 0 26px}
.story-entry-heading{flex:1;min-width:0}.story-entry-heading strong{display:block;color:#ead8b7;font-size:15px;font-weight:500;line-height:1.5}
.story-entry-heading small{display:block;margin-top:5px;color:#918e8c;font-size:11px;line-height:1.5}
.story-status{flex:0 0 auto;color:#c8a46f;border:1px solid #5d4935;font-size:10px;padding:4px 6px}
.story-chevron{color:#baa47e;display:inline-block;font-size:20px;transition:transform .17s}.story-entry[open] .story-chevron{transform:rotate(180deg)}
.story-entry-body{padding:1px 24px 20px 59px;border-top:1px solid #3a302a}
.story-field{padding:13px 0;border-bottom:1px solid #28282a}.story-field:last-child{border-bottom:0}
.story-field h4,.story-cuts h4{font-size:11px;color:#bd9e6c;margin:0 0 9px;letter-spacing:.06em}
.story-field p{font-size:13px;color:#d6ccc0;line-height:1.9;white-space:normal;margin:0;overflow-wrap:anywhere}
.story-cuts{padding-top:18px}.story-cut{padding:13px 14px;background:#11151a;border-left:2px solid #766042;margin:8px 0}
.story-cut-no{font-size:10px;letter-spacing:.11em;color:#b5965d}.story-cut p{font-size:13px;line-height:1.9;color:#dfd6cc;margin:9px 0 0;overflow-wrap:anywhere}
.story-warning{margin-bottom:15px;padding:13px 16px;background:#271c18;border:1px solid #78513d;color:#e0b896;font-size:12px;line-height:1.7}
.story-disclaimer{font-size:11px;color:#928c85;line-height:1.8;padding-top:20px}
@media(max-width:760px){
 .dashboard-intro{gap:10px}.dashboard-intro .button{font-size:10px;padding:9px}
 .story-library-heading h2{font-size:23px}
 .story-tabs{margin-bottom:18px;padding-top:16px}
 .story-tab{padding:9px 10px}
 .story-group-heading{align-items:start;flex-direction:column;gap:12px}
 .story-entry summary{gap:10px;padding:14px 11px}.story-entry-heading strong{font-size:13px}
 .story-entry-body{padding:4px 15px 16px 16px}
 .story-order{font-size:12px;flex-basis:21px}.story-status{font-size:9px}
}
@media(max-width:420px){.story-library-heading .private-badge{font-size:9px;white-space:nowrap}.story-entry summary{gap:6px}.story-controls button{font-size:10px;padding:7px}}
