:root{color:var(--text);background:var(--background);font-synthesis:none;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:var(--background);min-width:320px;margin:0}a{color:inherit}.site-shell{width:min(1120px,100% - 4rem);min-height:100vh;margin:0 auto}.site-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;min-height:72px;display:flex}.brand{letter-spacing:-.02em;font-size:1rem;font-weight:680;text-decoration:none}nav{gap:1.25rem;display:flex}nav a{color:var(--muted);font-size:.9rem;text-decoration:none}nav a:hover,nav a.router-link-active{color:var(--text);text-underline-offset:4px;text-decoration:underline}.nav-disabled{color:var(--muted);font-size:.9rem}.theme-switcher{align-items:center;display:inline-flex}.theme-switcher select{border:1px solid var(--border);appearance:auto;background:var(--surface);min-width:92px;color:var(--muted);font:inherit;cursor:pointer;border-radius:.3rem;padding:.28rem 1.55rem .28rem .5rem;font-size:.78rem}.theme-switcher select:focus-visible{border-color:var(--interactive-border);outline:2px solid var(--interactive-border);outline-offset:2px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.intro{padding:clamp(2rem,5vw,3.75rem) 0 3rem}.intro h1{white-space:nowrap}.intro-title-row{display:block}.home-content{isolation:isolate;position:relative}.home-protocol-background{display:none}.home-content>section{z-index:1;position:relative}.page-heading{max-width:720px;padding:clamp(2rem,5vw,3.75rem) 0 3rem}.page-heading.narrow{max-width:720px}.eyebrow,.meta{color:var(--subtle);letter-spacing:.04em;font:.74rem ui-monospace,SFMono-Regular,Menlo,monospace}.eyebrow{margin:0 0 1.1rem}h1,h2,p{margin-top:0}h1{letter-spacing:-.07em;margin-bottom:0;font-size:clamp(2.5rem,6vw,4.65rem);font-weight:650;line-height:.98}.subtitle{color:var(--subtle);letter-spacing:.06em;margin:.8rem 0 0;font-size:.95rem;font-weight:600}.lede{max-width:610px;color:var(--muted);margin:1.35rem 0 0;font-size:1.08rem;line-height:1.65}.card-grid{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.project-card{border:1px solid var(--card-border);background:var(--surface);border-radius:.4rem;flex-direction:column;justify-content:space-between;min-height:250px;padding:1.4rem;text-decoration:none;transition:transform .18s,box-shadow .18s,border-color .18s;display:flex}.project-card:hover,.project-card:focus-visible{border-color:var(--interactive-border);box-shadow:0 4px 10px var(--shadow);outline:none;transform:translateY(-4px)}.project-card-disabled{cursor:not-allowed;opacity:.72}.project-card-disabled:hover{border-color:var(--card-border);box-shadow:none;transform:none}h2{letter-spacing:-.03em;margin-bottom:.55rem;font-size:1.2rem;font-weight:650}.project-card p,.list-item p,.dataset-panel p{color:var(--muted);margin-bottom:0;font-size:.91rem;line-height:1.55}.arrow{color:var(--muted);font-size:1.2rem}.list{border-top:1px solid var(--border)}.list-item{border-bottom:1px solid var(--border);grid-template-columns:150px minmax(0,1fr) 190px auto;align-items:start;gap:2rem;padding:1.4rem 0;display:grid}.tool-list-item{grid-template-columns:minmax(0,1fr) 190px;padding-right:clamp(2rem,7vw,5.5rem)}.resource-list-item{grid-template-columns:minmax(0,1fr)}.resource-title{color:inherit;text-decoration:none}.resource-title:hover,.resource-title:focus-visible{color:var(--interactive-border);text-underline-offset:4px;outline:none;text-decoration:underline}.list-item h2{margin:0 0 .35rem}.featured-star{color:#c9362b;vertical-align:-.03em;margin-right:.45rem;font-size:1.3em}.tool-resources{flex-wrap:wrap;gap:.45rem .8rem;padding-top:.25rem;display:flex}.tool-resources a{color:var(--muted);text-decoration:underline;-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border);text-underline-offset:3px;font:.9rem SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.tool-resources a:hover,.tool-resources a:focus-visible{color:var(--interactive-border);outline:none;text-decoration-color:currentColor}.dataset-grid{gap:1rem;display:grid}.dataset-panel{border:1px solid var(--card-border);border-radius:.4rem;grid-template-columns:1.4fr 1fr;gap:3rem;padding:1.75rem;display:grid}.dataset-panel h2{margin:.85rem 0 .5rem;font-size:1.55rem}.screenshots-link,.back-link{color:var(--text);margin-top:1rem;font-size:.9rem;font-weight:600;text-decoration:none;display:inline-block}.screenshots-link:hover,.back-link:hover{text-underline-offset:4px;text-decoration:underline}.gallery-heading{padding-bottom:2rem}.back-link{color:var(--muted);margin:0 0 2.25rem;font-weight:500}.screenshot-grid{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.thumbnail{border:1px solid var(--card-border);background:var(--surface);color:var(--text);cursor:zoom-in;text-align:left;border-radius:.4rem;padding:0;transition:transform .18s,box-shadow .18s,border-color .18s;overflow:hidden}.thumbnail:hover,.thumbnail:focus-visible{border-color:var(--interactive-border);box-shadow:0 4px 10px var(--shadow);outline:none;transform:translateY(-3px)}.thumbnail img{aspect-ratio:4/3;object-fit:cover;border-bottom:1px solid var(--border);width:100%;display:block}.thumbnail span{padding:.8rem .9rem;font-size:.85rem;display:block}.image-modal{z-index:10;background:var(--overlay);cursor:zoom-out;place-items:center;padding:2rem;display:grid;position:fixed;inset:0}.image-modal img{cursor:default;border-radius:.25rem;max-width:min(1180px,92vw);max-height:86vh;box-shadow:0 15px 50px #00000059}.close-button{background:var(--surface);width:2.25rem;height:2.25rem;color:var(--text);cursor:pointer;border:0;border-radius:50%;font-size:1.7rem;line-height:1;position:fixed;top:1rem;right:1.25rem}.ascii-logo{border:1px solid var(--card-border);background:var(--surface);width:100%;margin:0;padding:clamp(1rem,3vw,2rem);overflow-x:auto}.ascii-logo img{width:100%;min-width:640px;height:auto;display:block}.ascii-logo figcaption{color:var(--subtle);text-align:center;text-transform:uppercase;letter-spacing:.08em;margin-top:1.25rem;font:.74rem SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.paper-table-wrap{border:1px solid var(--card-border);background:var(--surface);overflow-x:auto}.paper-table{border-collapse:collapse;text-align:left;width:100%;min-width:1380px}.paper-table caption{border-bottom:1px solid var(--border);color:var(--subtle);text-align:left;padding:1rem 1.2rem;font:.75rem SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.paper-table th,.paper-table td{border-bottom:1px solid var(--border);padding:1rem 1.2rem}.paper-table th{color:var(--muted);letter-spacing:.05em;font:600 .9rem SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.paper-table td{font-size:.9rem}.paper-table th:first-child,.paper-table td:first-child{min-width:300px}.paper-table th:nth-child(2),.paper-table td:nth-child(2){min-width:130px}.paper-table th:nth-child(4),.paper-table td:nth-child(4){min-width:180px}.paper-table th:nth-child(7),.paper-table td:nth-child(7){min-width:210px}.paper-table tbody tr:last-child td{border-bottom:0}.paper-table tbody tr:hover{background:color-mix(in srgb, var(--surface) 92%, var(--text))}dl{margin:0}dl div{border-bottom:1px solid var(--border);justify-content:space-between;gap:1rem;padding:.85rem 0;font-size:.9rem;display:flex}dt{color:var(--muted)}dd{margin:0}footer{border-top:1px solid var(--border);color:var(--subtle);margin-top:5rem;padding:1.25rem 0;font-size:.8rem}html[data-theme=geek]{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}html[data-theme=geek] body{background-color:var(--background);background-image:linear-gradient(#7cdc7609 1px,#0000 1px),linear-gradient(90deg,#7cdc7609 1px,#0000 1px);background-size:24px 24px}html[data-theme=geek] .site-header{border-bottom-style:dashed;min-height:64px}html[data-theme=geek] .brand{color:var(--text);letter-spacing:.05em;text-transform:uppercase;font-size:.84rem;font-weight:700}html[data-theme=geek] .brand:before{content:"[ ";color:var(--subtle)}html[data-theme=geek] .brand:after{content:" ]";color:var(--subtle)}html[data-theme=geek] nav a{text-transform:uppercase;font-size:.78rem}html[data-theme=geek] nav a:before{content:"/";color:var(--subtle);margin-right:.15rem}html[data-theme=geek] .nav-disabled{text-transform:uppercase;font-size:.78rem}html[data-theme=geek] .nav-disabled:before{content:"/";color:var(--subtle);margin-right:.15rem}html[data-theme=geek] .theme-switcher select{color:var(--text);text-transform:uppercase;border-style:dashed;border-radius:0}html[data-theme=geek] .intro:before{content:"$ ./tls-internals --index";color:var(--subtle);margin-bottom:1.35rem;font-size:.78rem;display:block}html[data-theme=geek] h1{letter-spacing:-.055em;font-size:clamp(2.25rem,5.5vw,4.15rem);font-weight:700}html[data-theme=geek] h1:after{content:"_";color:var(--interactive-border);margin-left:.08em;animation:1s step-end infinite cursor-blink;display:inline-block}html[data-theme=geek] .subtitle,html[data-theme=geek] .eyebrow,html[data-theme=geek] .meta{letter-spacing:.08em;text-transform:uppercase}html[data-theme=geek] .project-card,html[data-theme=geek] .dataset-panel,html[data-theme=geek] .thumbnail{border-radius:0}html[data-theme=geek] .project-card{border-style:dashed;min-height:240px;position:relative}html[data-theme=geek] .project-card:before{content:"0x";color:var(--subtle);font-size:.68rem;position:absolute;top:.85rem;right:.9rem}html[data-theme=geek] .project-card:hover,html[data-theme=geek] .project-card:focus-visible{box-shadow:5px 5px 0 var(--border);transform:translate(-2px,-2px)}html[data-theme=geek] .list-item{border-bottom-style:dashed}html[data-theme=geek] .screenshots-link,html[data-theme=geek] .back-link{color:var(--interactive-border)}html[data-theme=geek] .close-button{border:1px solid var(--card-border);border-radius:0}html[data-theme=ascii]{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}html[data-theme=ascii] body{background-color:var(--background);background-image:radial-gradient(#81796c1f .5px,#0000 .5px);background-size:9px 9px}html[data-theme=ascii] .site-header{border-bottom:1px dashed var(--card-border);min-height:64px}html[data-theme=ascii] .brand{letter-spacing:.04em;text-transform:uppercase;font-size:.84rem;font-weight:700}html[data-theme=ascii] .brand:before{content:"[ ";color:var(--subtle)}html[data-theme=ascii] .brand:after{content:" ]";color:var(--subtle)}html[data-theme=ascii] nav a{font-size:.76rem}html[data-theme=ascii] nav a:before{content:"<";color:var(--subtle)}html[data-theme=ascii] nav a:after{content:">";color:var(--subtle)}html[data-theme=ascii] .nav-disabled{font-size:.76rem}html[data-theme=ascii] .nav-disabled:before{content:"<";color:var(--subtle)}html[data-theme=ascii] .nav-disabled:after{content:">";color:var(--subtle)}html[data-theme=ascii] .theme-switcher select{border-style:dashed;border-radius:0;font-family:inherit}html[data-theme=ascii] h1{letter-spacing:-.06em;font-size:clamp(2.2rem,5.5vw,4.1rem);font-weight:700}html[data-theme=ascii] .subtitle,html[data-theme=ascii] .eyebrow,html[data-theme=ascii] .meta{letter-spacing:.06em}html[data-theme=ascii] .project-card,html[data-theme=ascii] .dataset-panel,html[data-theme=ascii] .thumbnail{box-shadow:none;border-style:dashed;border-radius:0}html[data-theme=ascii] .project-card{min-height:230px}html[data-theme=ascii] .project-card:hover,html[data-theme=ascii] .project-card:focus-visible{box-shadow:4px 4px 0 var(--border);border-style:solid;transform:none}html[data-theme=ascii] .intro-title-row{grid-template-columns:minmax(430px,.8fr) minmax(0,1.2fr);align-items:start;gap:clamp(1.5rem,4vw,3.5rem);display:grid}html[data-theme=ascii] .home-protocol-background{opacity:.48;mix-blend-mode:multiply;pointer-events:none;-webkit-user-select:none;user-select:none;justify-self:end;width:88%;height:auto;margin:0;display:block}html[data-theme=ascii] .list-item{border-bottom-style:dashed}html[data-theme=ascii] .screenshots-link,html[data-theme=ascii] .back-link{color:var(--text);text-underline-offset:4px;text-decoration:underline}html[data-theme=ascii] .close-button{border:1px dashed var(--card-border);border-radius:0}html[data-theme=diablo2]{font-family:Georgia,Times New Roman,serif}html[data-theme=diablo2] body{background-color:var(--background);background-image:radial-gradient(at 50% -20%,#81231433,#0000 48%),linear-gradient(135deg,#ffda9606 25%,#0000 25%),linear-gradient(45deg,#ffda9605 25%,#0000 25%);background-size:auto,8px 8px,8px 8px}html[data-theme=diablo2] .site-header{border-bottom:1px solid var(--card-border);min-height:76px;box-shadow:0 2px 20px #00000059}html[data-theme=diablo2] .brand{color:var(--interactive-border);letter-spacing:.12em;text-shadow:0 0 12px #d4a65247;text-transform:uppercase;font-family:Georgia,Times New Roman,serif;font-size:1.1rem;font-weight:700}html[data-theme=diablo2] .brand:before{content:"✦ ";color:#9d2e20}html[data-theme=diablo2] .brand:after{content:" ✦";color:#9d2e20}html[data-theme=diablo2] nav{gap:1.45rem}html[data-theme=diablo2] nav a,html[data-theme=diablo2] .nav-disabled{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:.9rem;font-weight:700}html[data-theme=diablo2] nav a:hover,html[data-theme=diablo2] nav a.router-link-active{color:var(--interactive-border);text-shadow:0 0 8px #d4a65259;text-decoration:none}html[data-theme=diablo2] .theme-switcher select{border:1px solid var(--card-border);color:var(--text);background:#1b1311;border-radius:0;font-family:Georgia,Times New Roman,serif}html[data-theme=diablo2] .intro:before{content:"✦  SANCTUARY ARCHIVES  ✦";color:#a63727;letter-spacing:.17em;margin-bottom:1.25rem;font-size:.78rem;font-weight:700;display:block}html[data-theme=diablo2] h1{color:var(--text);letter-spacing:-.055em;text-shadow:0 2px #080605,0 0 20px #a6362733;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.7rem,6vw,4.9rem);font-weight:700}html[data-theme=diablo2] .subtitle{color:var(--interactive-border);letter-spacing:.1em;font-family:Georgia,Times New Roman,serif}html[data-theme=diablo2] .project-card,html[data-theme=diablo2] .dataset-panel,html[data-theme=diablo2] .thumbnail{border:1px solid var(--card-border);background:linear-gradient(140deg, #ffe0a009, transparent 44%), var(--surface);border-radius:2px;box-shadow:inset 0 0 0 3px #1e110cd9,0 4px 16px #00000047}html[data-theme=diablo2] .project-card:before{content:"";pointer-events:none;border:1px solid #d4a65221;position:absolute;inset:4px}html[data-theme=diablo2] .project-card{position:relative}html[data-theme=diablo2] .project-card:hover,html[data-theme=diablo2] .project-card:focus-visible{border-color:var(--interactive-border);transform:translateY(-3px);box-shadow:inset 0 0 0 3px #1e110cd9,0 0 18px #a6362742}html[data-theme=diablo2] h2{color:var(--interactive-border);font-family:Georgia,Times New Roman,serif}html[data-theme=diablo2] .eyebrow,html[data-theme=diablo2] .meta{color:#b74531;letter-spacing:.1em;font-family:Georgia,Times New Roman,serif;font-weight:700}html[data-theme=diablo2] .list-item{border-bottom-color:var(--border)}html[data-theme=diablo2] .screenshots-link,html[data-theme=diablo2] .back-link{color:var(--interactive-border)}html[data-theme=diablo2] .close-button{border:1px solid var(--card-border);color:var(--interactive-border);background:#241916;border-radius:2px}@keyframes cursor-blink{50%{opacity:0}}@media (width<=680px){.site-shell{width:min(100% - 2.5rem,1120px)}.site-header{min-height:60px}nav{gap:.55rem}nav a{font-size:.78rem}.theme-switcher select{min-width:75px;padding-left:.35rem;font-size:.72rem}.intro{padding:2rem 0 2.25rem}html[data-theme=ascii] .intro-title-row{grid-template-columns:1fr}.page-heading{padding:2rem 0 2.25rem}.card-grid,.dataset-panel,.screenshot-grid{grid-template-columns:1fr}.project-card{min-height:190px}.list-item{grid-template-columns:1fr auto;gap:.75rem}.tool-list-item{padding-right:0}.list-item .meta{grid-column:1/-1}.tool-resources{grid-column:1;padding-top:0}}
