/* 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-status{background:#000034;padding:7px 12px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font:11px/1.3 'Courier New',monospace;color:#a3ffec}
.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-main:before{content:'✧       ✦    ·       ✴        ✧       ✦       ·         ✧';position:absolute;top:12px;left:2%;right:2%;color:#ffff80;font-size:22px;letter-spacing:15px;opacity:.8;pointer-events:none}
.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)}
.eyebrow{font:bold 11px 'Courier New',monospace;color:#6bffff;letter-spacing:2px;position:relative}
.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}
.site-subtitle{color:#fff;font:italic 16px Georgia,serif;letter-spacing:1px}
.header-sparks{margin-top:13px;color:#a1ff96;font:12px 'Courier New',monospace}
.moving-strip{background:#ffe64f;color:#06044e;border-block:3px ridge #ec47a4;overflow:hidden;white-space:nowrap;font:bold 12px/30px 'Courier New',monospace}
.ticker{display:inline-block;white-space:nowrap;padding-left:100%;animation:scrolltext 23s linear infinite}
@keyframes scrolltext{to{transform:translateX(-100%)}}
.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}.header-sparks{font-size:10px}.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}.header-status{font-size:9px}.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}
