/* Tharul's Web World — deliberately old web in appearance, not in accessibility. */
:root{--navy:#070d40;--panel:#fffcdf;--ink:#1e1647;--a:#001fcd;--hot:#fb2a96;--yellow:#ffe64f;--cyan:#00f6f6;--edge:#6468e4}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#030822 url('../assets/starfield.png') repeat;color:#fefefe;font:15px/1.48 Verdana,Geneva,Tahoma,sans-serif}
a{color:var(--a);text-decoration:underline;text-underline-offset:2px}
a:visited{color:#7130a5}a:hover{color:#bc006e;background:#ffe878}
a:focus-visible,button:focus-visible,textarea:focus-visible,input:focus-visible{outline:3px solid #ffea24;outline-offset:3px}
button,input,textarea{font:inherit}
.wrap{width:min(1100px,calc(100% - 20px));margin:18px auto 24px}
.site-header{border:5px ridge #70a1ff;background:#050b51;box-shadow:7px 7px 0 #010317}
.header-main{position:relative;padding:24px 20px 22px;text-align:center;min-height:195px;overflow:hidden;background:radial-gradient(ellipse at 50% 35%,#1621a5 0%,#07064f 56%,#030431 100%)}
.header-art{position:absolute;left:24px;top:54px;width:74px;image-rendering:pixelated;transform:rotate(-8deg)}
.header-art.right{left:auto;right:24px;transform:rotate(8deg)}
.site-title{margin:10px 0 9px;font:bold clamp(30px,5.6vw,66px)/1.05 'Trebuchet MS',Verdana,sans-serif;color:#fff25b;letter-spacing:-2px;text-shadow:3px 3px #f42792,6px 6px #171386,-1px -1px #ffffec}
.primary-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:7px;padding:11px;background:#191067;border-top:2px solid #6a5ee7}
.nav-btn{display:block;color:#fff !important;background:linear-gradient(#3455d3,#10236e);border:3px outset #92b5ff;font:bold 12px 'Courier New',monospace;padding:8px 11px;text-align:center;min-width:103px;text-decoration:none}
.nav-btn:hover,.nav-btn[aria-current=page]{background:linear-gradient(#fc51aa,#9f1368);border-color:#ffb8db;color:white!important}
.nav-btn:active{border-style:inset}
.columns{display:grid;grid-template-columns:198px minmax(0,1fr) 195px;align-items:start;gap:14px;margin-top:15px}
.sidebar,.main-column{min-width:0}.main-column{display:grid;gap:14px}
.widget{border:3px ridge #92acef;background:#fdfae3;color:var(--ink);margin-bottom:14px;box-shadow:3px 3px 0 #030423;min-width:0}
.widget h2,.widget h3,.panel-heading{margin:0;background:#080f72;color:#ffff61;padding:8px 10px;border-bottom:2px solid #f13aab;font:bold 13px 'Courier New',monospace;text-transform:uppercase;letter-spacing:.3px}
.widget-inner{padding:11px}.widget-inner p{margin:0 0 10px}.widget-inner p:last-child{margin-bottom:0}
.side-links{list-style:'★  ';padding-left:20px;margin:0}.side-links li{padding:3px 0}
.wide-divider{height:7px;border-top:2px dotted #fa329b;border-bottom:2px dotted #5669bf;margin:12px 0}
.mini-note{font:11px/1.45 'Courier New',monospace;color:#49415e}.badge-grid{display:grid;grid-template-columns:repeat(2,88px);gap:5px;justify-content:center}.badge-grid img{width:88px;height:31px;image-rendering:pixelated}
.pixel-small{width:55px;max-width:100%;image-rendering:pixelated}.center{text-align:center}
.content-panel{border:4px ridge #f7b542;background:var(--panel);color:var(--ink);box-shadow:4px 4px 0 #00042b}
.content-panel .panel-heading{background:linear-gradient(90deg,#7b0056,#cf1679);color:#fff2a8;border-bottom:3px double #ffd84a;padding:10px 13px}
.panel-body{padding:18px}.panel-body p{margin:0 0 13px}.panel-body p:last-child{margin:0}
.section-title{font:bold 22px/1.2 Georgia,'Times New Roman',serif;color:#880073;margin:0 0 11px}
.welcome-grid{display:grid;grid-template-columns:132px minmax(0,1fr);gap:16px;align-items:start}
.portrait{width:100%;height:auto;border:5px ridge #d6a045;background:#fff;display:block;box-shadow:3px 3px 0 #5e456c}
.caption{font:10px 'Courier New',monospace;text-align:center;margin-top:5px}
.gif-new{width:68px;height:27px;image-rendering:pixelated;vertical-align:middle}
.lead{font:17px/1.58 Georgia,serif}
.old-divider{text-align:center;letter-spacing:7px;color:#d81b80;margin:13px 0 16px}
.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.project-card{padding:12px;border:2px outset #bcbfc9;background:#fff4ce;min-width:0}
.project-card h3{margin:0 0 7px;font:bold 16px Georgia,serif;color:#5e0767}
.project-card p{margin:0 0 7px;font-size:13px}
.project-card .tag{font:10px 'Courier New',monospace;color:#6d4368}
.updates{padding-left:21px;margin:3px 0}.updates li{margin-bottom:9px}.updates strong{color:#a00067}
.notice{border:3px dashed #e2469a;background:#fff7ae;padding:10px;color:#62204f;font-size:13px}
.web-ring{display:flex;justify-content:space-evenly;gap:10px;flex-wrap:wrap;background:#cbeffb;padding:13px 6px;border:2px inset #50b3d1;font:bold 11px 'Courier New',monospace;text-align:center}
.footer{margin-top:15px;border:3px ridge #8fc5ff;background:#08115d;text-align:center;color:#fff;padding:17px 10px;font:12px/1.7 'Courier New',monospace}
.footer a{color:#87ffff}.footer a:visited{color:#ffa4ed}.footer-line{margin:8px 0;border-top:1px dotted #87b8f3}
.contact-table{width:100%;border-collapse:collapse}.contact-table th,.contact-table td{border:1px solid #dda0c8;padding:9px;text-align:left;vertical-align:top}.contact-table th{width:105px;background:#fff1b9;font:12px 'Courier New',monospace}.contact-table td{overflow-wrap:anywhere}
.left-sticker{background:#f7ec68;padding:7px;display:inline-block;color:#17114b;border:2px dotted #a50062;transform:rotate(-3deg);font:bold 11px 'Courier New',monospace}
.retro-table{width:100%;border-collapse:collapse}.retro-table td,.retro-table th{border:2px groove #8d77b2;padding:9px;vertical-align:top}.retro-table th{background:#4a128c;color:white}.retro-table td{background:#fcf5cf}
.project-wide{border:3px ridge #8981d9;background:#fff5d1;padding:13px;margin-bottom:15px}
.project-wide h3{font-size:21px;color:#6b026f;margin:0 0 8px}.project-wide img{display:block;max-width:100%;height:auto;border:2px solid #333}
.torf-media{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:10px 0}.small-img{min-width:0}
.breadcrumb{font:11px 'Courier New',monospace;color:#7b4d83;margin:0 0 12px}
.pixel-button{border:3px outset #ccc;background:#dfdbcf;color:#12133b;padding:8px 11px;font:bold 12px 'Courier New',monospace;cursor:pointer;box-shadow:2px 2px #888}
.pixel-button:hover{background:#fff2a2}.pixel-button:active{border-style:inset;box-shadow:none}
.form-row{margin-bottom:13px}.form-row label{display:block;font:bold 12px 'Courier New',monospace;margin-bottom:5px}
.form-row input,.form-row textarea{width:100%;padding:9px;border:3px inset #a29b95;background:#fff;color:#18131f;resize:vertical;border-radius:0}
.form-row textarea{min-height:110px}.footnote{font:11px 'Courier New',monospace;color:#625c73}
.secret-box{background:#120d59;color:#fce689;border:3px inset #6b6baf;padding:12px;text-align:center}.secret-box button{margin-top:8px}
.secret-box p{margin:8px 0;font:12px 'Courier New',monospace}
.blink{animation:blink 1s steps(1,end) infinite}@keyframes blink{50%{opacity:0}}
.rainbow{animation:rainbow 6s steps(6,end) infinite}@keyframes rainbow{0%{color:#ff469c}20%{color:#0c54df}40%{color:#008842}60%{color:#af33ba}80%{color:#b97700}100%{color:#ff469c}}
.small-quote{font:italic 16px Georgia,serif;text-align:center;color:#79106e;margin:8px 0}
.page-icon{float:right;width:75px;height:75px;image-rendering:pixelated;margin:0 0 10px 16px}
.small{font-size:12px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:860px){.columns{grid-template-columns:180px minmax(0,1fr)}.sidebar-right{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.sidebar-right .widget{margin:0}.badge-grid{grid-template-columns:repeat(2,88px)}.header-art{width:55px;left:14px}.header-art.right{right:14px}}
@media(max-width:600px){.wrap{width:calc(100% - 12px);margin:6px auto 12px}.columns{display:flex;flex-direction:column;gap:11px}.main-column{order:0;width:100%}.sidebar-left{order:1;width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.sidebar-left .widget{margin:0}.sidebar-right{order:2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.sidebar-right .widget{margin:0}.header-main{padding:25px 9px 20px;min-height:155px}.header-art{display:none}.site-title{letter-spacing:-1px;text-shadow:2px 2px #ef318d,4px 4px #180e81}.primary-nav{gap:5px;padding:8px}.nav-btn{min-width:0;flex:1 1 28%;padding:8px 4px;font-size:11px}.welcome-grid{grid-template-columns:95px minmax(0,1fr);gap:10px}.panel-body{padding:12px}.project-grid{grid-template-columns:1fr}.footer{font-size:11px}.retro-table td,.retro-table th{padding:6px;font-size:12px}}
@media(max-width:390px){.sidebar-left,.sidebar-right{grid-template-columns:1fr}.welcome-grid{grid-template-columns:1fr}.portrait{max-width:160px}.site-title{font-size:29px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ticker,.blink,.rainbow{animation:none}}

/* The desk / Now */
.desk-list{display:grid;gap:10px;margin:14px 0}
.desk-list>div{border:2px outset #bdb4cd;background:#fff4d5;padding:12px}
.desk-list strong{display:block;font:700 16px Georgia,serif;color:#5e0767;margin:2px 0 5px}
.desk-list p{font-size:13px;margin:0}
.desk-index{display:block;font:11px/1.4 'Courier New',monospace;color:#7d4173}

/* Compact 1990s masthead: retain the original theme without extra label bars. */
.header-main{padding:30px 20px 25px;min-height:115px}
.header-main::before{display:none}
.header-art{top:26px;width:64px;height:64px}
.site-title{margin:0;font-size:clamp(31px,5.3vw,62px)}
.primary-nav{border-top:0}
.random-file-box{border:3px inset #7870bd;background:#151056;color:#fff4a1;text-align:center;padding:15px 10px;font:13px/1.6 'Courier New',monospace}
.random-file-box p{margin:0 0 13px}
.random-file-box .random-file-result{margin:12px 0 0;color:#e5faff;min-height:1.8em}
.random-file-result a{color:#8fffff;font-weight:bold}
.random-file-result a:hover{color:#17104e}
@media(max-width:600px){.header-main{padding:21px 10px;min-height:75px}}
/* The old oversized header box is gone: the name sits directly on the starfield. */
.site-header{border:0;background:transparent;box-shadow:none}
.header-main{background:transparent;min-height:95px;padding:16px 20px 18px;overflow:visible}
.header-art{top:14px}
.primary-nav{border:3px ridge #70a1ff}
@media(max-width:600px){.header-main{min-height:63px;padding:14px 6px 10px}}
