:root{--canvas: #0f1513;--surface: #18211e;--surface-raised: #1f2a26;--hairline: #2a3833;--green-accent: #00754a;--mint: #7fd1ae;--mint-soft: #d4e9e2;--gold: #cba258;--text: rgb(255 255 255 / .87);--text-soft: rgb(255 255 255 / .58);--shadow-lift: 0 0 6px rgb(0 0 0 / .35), 0 8px 16px rgb(0 0 0 / .45);--shadow-modal: 0 0 8px rgb(0 0 0 / .5), 0 16px 40px rgb(0 0 0 / .55);--radius-card: 12px;--radius-box: 10px;--radius-pill: 50px;--gutter: 16px;--ease: cubic-bezier(.25, .46, .45, .94);color-scheme:dark}@media(min-width:768px){:root{--gutter: 24px}}@media(min-width:1024px){:root{--gutter: 40px}}*{box-sizing:border-box}html,body{margin:0;background:var(--canvas);color:var(--text);font-family:Inter,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.5;letter-spacing:-.01em;-webkit-font-smoothing:antialiased}#root{min-height:100vh;display:flex;flex-direction:column}a{color:inherit}button{font:inherit;letter-spacing:inherit;color:inherit}:focus-visible{outline:2px solid var(--mint);outline-offset:2px}.page{flex:1}.container{margin:0 auto;padding:0 var(--gutter)}.pill{display:inline-flex;align-items:center;gap:6px;padding:7px 16px;border:1px solid var(--mint);border-radius:var(--radius-pill);background:transparent;color:var(--mint);font-size:14px;font-weight:600;line-height:1.2;text-decoration:none;cursor:pointer;transition:all .2s ease}.pill:hover{background:#7fd1ae1a}.pill:active{transform:scale(.95)}.pill.filled{border-color:var(--green-accent);background:var(--green-accent);color:#fff}.pill.filled:hover{background:#008556}.site-nav{position:sticky;top:0;z-index:20;background:#0f1513d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--hairline)}.site-nav .container{display:flex;align-items:center;justify-content:space-between;gap:12px;height:60px}.author{display:flex;align-items:center;gap:8px;font-size:14px}.author>a:first-child{color:var(--text-soft);text-decoration:none}.author>a:first-child strong{color:var(--text);font-weight:600}.author>a:first-child:hover strong{color:var(--mint)}.author .pill{padding:5px 12px;font-size:13px}.card.recent{animation:recent-glow 1.8s var(--ease) .3s both}@keyframes recent-glow{0%,to{border-color:var(--hairline);box-shadow:none}30%{border-color:var(--mint);box-shadow:0 0 0 3px color-mix(in srgb,var(--mint) 25%,transparent)}}.wordmark{display:inline-flex;align-items:center;gap:10px;color:var(--text);font-weight:700;font-size:17px;text-decoration:none}.wordmark-mark{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--green-accent);color:#fff}.home .domain{padding:40px 0}.domain h2{display:flex;align-items:center;gap:12px;margin:0 0 20px;font-size:20px;font-weight:600}.domain-num{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--surface-raised);border:1px solid var(--hairline);color:var(--mint);font-size:15px}.cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(360px,100%),1fr));gap:12px}.card{display:flex;flex-direction:column;justify-content:space-between;gap:16px;height:100%;min-height:120px;padding:20px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);text-decoration:none;transition:transform .3s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease)}@media(hover:hover){.card:hover{transform:translateY(-3px);border-color:var(--mint);box-shadow:var(--shadow-lift)}}.card:active{transform:scale(.98)}.card-title{font-size:18px;font-weight:600;line-height:1.35}.card-count{color:var(--text-soft);font-size:14px}.map-toolbar{position:sticky;top:0;z-index:20;display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:10px var(--gutter);background:#0f1513e0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--hairline)}.icon-btn{display:grid;place-items:center;flex:none;width:36px;height:36px;border:1px solid var(--hairline);border-radius:50%;background:var(--surface);color:var(--text);text-decoration:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:all .2s ease}.icon-btn:hover{border-color:var(--mint);color:var(--mint)}.icon-btn:active{transform:scale(.95)}.toolbar-divider{flex:none;width:1px;height:28px;background:var(--hairline)}.map-heading{display:flex;flex-direction:column;gap:2px;min-width:0;margin-right:auto}.map-eyebrow{color:color-mix(in srgb,var(--mint) 75%,var(--text-soft));font-size:11px;font-weight:600;line-height:1.2;letter-spacing:.08em;text-transform:uppercase}.map-heading h1{margin:0;overflow:hidden;font-size:17px;font-weight:600;line-height:1.3;white-space:nowrap;text-overflow:ellipsis}.legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin:0;padding:0;list-style:none;color:var(--text-soft);font-size:12px}.legend li{display:inline-flex;align-items:center;gap:6px}.legend-mark{color:var(--mint);font-weight:700}.legend-mark.exam{color:var(--gold)}.map-pager{display:flex;gap:6px}.map-page{display:flex;flex-direction:column;overflow-x:clip}.map-body{flex:1;display:flex;flex-direction:column;justify-content:center;padding:24px var(--gutter) 32px}.fit{overflow:visible}.fit-scroll{overflow-x:auto}.fit-inner{transform-origin:top left}.map-grid{display:grid;margin-bottom:12px}.cell{--hue: var(--mint);display:flex;min-width:0}.box{flex:1;display:flex;align-items:center;justify-content:center;min-width:0;padding:10px 8px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-box);color:var(--text);text-align:center;font-size:15px;line-height:1.25;cursor:pointer;transition:transform .25s var(--ease),box-shadow .25s var(--ease),opacity .3s var(--ease),border-color .25s var(--ease),background-color .25s var(--ease)}@media(hover:hover){.box:hover{transform:translateY(-2px);border-color:var(--hue);box-shadow:0 0 0 1px var(--hue),0 10px 24px color-mix(in srgb,var(--hue) 22%,transparent)}}.box:active{transform:scale(.97)}.box.trunk{background:var(--surface-raised);color:#fff;font-weight:600;letter-spacing:.01em}.box.group{background:color-mix(in srgb,var(--hue) 13%,var(--canvas));border-color:color-mix(in srgb,var(--hue) 32%,transparent);color:color-mix(in srgb,var(--hue) 55%,#fff);font-weight:600}.box.leaf{border-top:3px solid color-mix(in srgb,var(--hue) 80%,transparent)}.box.depth-0{min-height:52px;font-size:20px}.box.section{min-height:56px;font-size:24px}.box.depth-1{min-height:48px;font-size:16px}.box.narrow{font-size:14px;-webkit-hyphens:auto;hyphens:auto;overflow-wrap:anywhere}.box.vertical{min-height:112px;padding:10px 4px;font-size:14px}.box.vertical .box-label{writing-mode:vertical-rl;transform:rotate(180deg);line-height:1.2}.cell.turnable{position:relative}.cell.turnable:before{content:"";position:absolute;inset:0;border:1px dashed var(--hairline);border-radius:var(--radius-box);opacity:0;transition:opacity .4s var(--ease)}.cell.turnable:has(.box:focus-visible){z-index:5}.cell.turnable:has(.box:focus-visible):before{opacity:1}@media(hover:hover){.cell.turnable:hover{z-index:5}.cell.turnable:hover:before{opacity:1}}.cell.turnable .box{transition:transform .7s cubic-bezier(.34,1.3,.64,1),box-shadow .5s var(--ease),opacity .3s var(--ease),border-color .3s var(--ease),background-color .3s var(--ease)}.cell.turnable .box:focus-visible{transform:rotate(90deg) scale(1.12);background:var(--surface-raised);border-color:var(--hue);box-shadow:0 0 0 1px var(--hue),0 16px 36px #0000008c;color:#fff}@media(hover:hover){.cell.turnable:hover .box{transform:rotate(90deg) scale(1.12);background:var(--surface-raised);border-color:var(--hue);box-shadow:0 0 0 1px var(--hue),0 16px 36px #0000008c;color:#fff}}.fit-scroll .box:not(.vertical) .box-label{position:sticky;left:12px;right:12px}.fit-scroll.more-right{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 48px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 48px),transparent)}.fit-scroll.more-left{-webkit-mask-image:linear-gradient(to left,#000 calc(100% - 48px),transparent);mask-image:linear-gradient(to left,#000 calc(100% - 48px),transparent)}.fit-scroll.more-left.more-right{-webkit-mask-image:linear-gradient(to right,transparent,#000 48px,#000 calc(100% - 48px),transparent);mask-image:linear-gradient(to right,transparent,#000 48px,#000 calc(100% - 48px),transparent)}.box.own-mindmap .box-label:after{content:" ↗";color:var(--hue);font-weight:700}.box.exam-key{border-color:var(--gold);font-weight:600}.box.exam-key .box-label:before{content:"★ ";color:var(--gold)}.box.selected{border-color:var(--hue);box-shadow:0 0 0 2px var(--hue)}.box.dimmed{opacity:.3}.source-note{margin:0;padding:8px 0 32px;color:var(--text-soft);font-size:12px}.modal-scrim{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:16px;background:#050a08b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{--hue: var(--mint);position:relative;width:min(560px,100%);max-height:min(85vh,760px);overflow-y:auto;padding:40px 32px 28px;background:color-mix(in srgb,var(--hue) 7%,var(--surface-raised));border:1px solid color-mix(in srgb,var(--hue) 55%,transparent);border-top:4px solid var(--hue);border-radius:var(--radius-card);box-shadow:0 0 0 1px color-mix(in srgb,var(--hue) 20%,transparent),0 20px 60px color-mix(in srgb,var(--hue) 16%,transparent),var(--shadow-modal)}.modal-close{position:absolute;top:14px;right:14px;display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--hairline);border-radius:50%;background:transparent;color:var(--text);font-size:22px;line-height:1;cursor:pointer;transition:all .2s ease}.modal :focus-visible{outline-color:var(--hue)}.modal-close:hover{border-color:var(--hue);color:var(--hue)}.modal-close:active{transform:scale(.95)}.modal-title{margin:0 48px 12px 0;color:color-mix(in srgb,var(--hue) 65%,#fff);font-size:26px;font-weight:600;line-height:1.3;letter-spacing:-.16px}.tag{display:inline-block;margin-bottom:16px;padding:4px 12px;border:1px solid var(--gold);border-radius:var(--radius-pill);color:var(--gold);font-size:13px;font-weight:700;letter-spacing:.5px}.description{font-size:17px;line-height:1.65}.description p{margin:0 0 12px}.description ul,.description ol{margin:0 0 12px;padding-left:22px}.description li{margin-bottom:6px}.description li::marker{color:var(--hue);font-weight:600}.modal .pill.filled{margin-top:8px}.not-found .container{padding-top:64px;padding-bottom:64px;text-align:center}.not-found p{color:var(--text-soft)}@media(max-width:1024px){.cards{grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr))}}@media(max-width:900px){.map-toolbar{flex-wrap:nowrap}.map-toolbar .legend{display:none}}@media(max-width:700px){.modal{padding:36px 20px 24px}.author>a:first-child{display:none}.map-toolbar{flex-wrap:nowrap}.toolbar-divider,.map-toolbar .legend{display:none}}
