:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}body{margin:0}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}:root,[data-theme=dark]{--bg:#0b0e14;--surface:#141922;--surface-alt:#1a202c;--accent-primary:#00d9c0;--accent-secondary:#ff6b5b;--accent-purple:#6f6cff;--text-heading:#f2f4f7;--text-body:#9aa3b2;--line:#1e2634;--line-highlight:#2a3548;--card-shadow:0 10px 30px #0006;--hover-shadow:0 16px 40px #00d9c01f;--display-font:"Space Grotesk", sans-serif;--body-font:"Inter", sans-serif;--mono-font:"JetBrains Mono", monospace}[data-theme=light]{--bg:#faf9f6;--surface:#fff;--surface-alt:#f4f3ee;--accent-primary:#0e7c7b;--accent-secondary:#e85a4f;--accent-purple:#5b51d8;--text-heading:#14181f;--text-body:#5b6472;--line:#e8e6e0;--line-highlight:#d8d6ce;--card-shadow:0 4px 24px #1419230f;--hover-shadow:0 12px 32px #0e7c7b1f}.tj-portfolio{background:var(--bg);color:var(--text-body);font-family:var(--body-font);-webkit-font-smoothing:antialiased;min-height:100vh;transition:background .3s,color .3s;position:relative;overflow-x:hidden}.tj-portfolio *{box-sizing:border-box}.tj-portfolio a{color:inherit;text-decoration:none}.tj-portfolio ::selection{background:var(--accent-primary);color:#fff}.tj-portfolio .noise{pointer-events:none;z-index:1;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.tj-portfolio .wrap{max-width:1200px;margin:0 auto;padding:0 32px}.device-frame-divider{background:linear-gradient(90deg, transparent 0%, var(--line) 20%, var(--accent-primary) 50%, var(--line) 80%, transparent 100%);opacity:.5;border-radius:100px;max-width:1200px;height:2px;margin:80px auto}.tj-portfolio nav{z-index:100;-webkit-backdrop-filter:blur(16px);background:var(--bg);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:20px 36px;transition:background .3s,border-color .3s;display:flex;position:sticky;top:0;left:0;right:0}.tj-portfolio .logo{font-family:var(--display-font);letter-spacing:.02em;color:var(--text-heading);align-items:center;gap:10px;font-size:22px;font-weight:700;display:flex}.tj-portfolio .logo .dot{background:var(--accent-primary);width:8px;height:8px;box-shadow:0 0 10px var(--accent-primary);border-radius:50%}.tj-portfolio .nav-center-pill{font-family:var(--mono-font);letter-spacing:.05em;text-transform:uppercase;border:1px solid var(--line);color:var(--text-body);background:var(--surface);box-shadow:var(--card-shadow);border-radius:100px;align-items:center;gap:8px;padding:6px 14px;font-size:11px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.tj-portfolio .nav-center-pill .blip{background:var(--accent-primary);width:6px;height:6px;box-shadow:0 0 8px var(--accent-primary);border-radius:50%}.tj-portfolio .nav-controls{align-items:center;gap:12px;display:flex}.tj-portfolio .theme-toggle-btn{background:var(--surface);border:1px solid var(--line);width:38px;height:38px;color:var(--text-heading);cursor:pointer;box-shadow:var(--card-shadow);border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex}.tj-portfolio .theme-toggle-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary);transform:scale(1.05)}.tj-portfolio .nav-right{align-items:center;gap:24px;display:flex}.tj-portfolio .nav-link{font-family:var(--body-font);color:var(--text-body);font-size:14.5px;font-weight:500;transition:color .2s}.tj-portfolio .nav-link:hover{color:var(--text-heading)}.tj-portfolio .nav-link.active{color:var(--accent-primary);font-weight:600}.tj-portfolio .menu-toggle{border:1px solid var(--line);color:var(--text-heading);cursor:pointer;background:0 0;border-radius:8px;padding:8px;display:none}.tj-portfolio .hero-redesign{flex-direction:column;justify-content:center;min-height:92vh;padding-top:50px;padding-bottom:50px;display:flex;position:relative}.tj-portfolio .hero-grid{grid-template-columns:1.2fr .8fr;align-items:center;gap:40px;display:grid}.tj-portfolio .eyebrow{font-family:var(--mono-font);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-primary);border:1px solid var(--line);background:#0e7c7b14;border-radius:100px;align-items:center;gap:10px;margin-bottom:24px;padding:6px 14px;font-size:13px;display:inline-flex}.tj-portfolio h1.hero-title{font-family:var(--display-font);letter-spacing:-.02em;color:var(--text-heading);max-width:820px;font-size:clamp(40px,5.5vw,76px);font-weight:700;line-height:1.08}.tj-portfolio h1.hero-title .highlight-teal{color:var(--accent-primary)}.tj-portfolio h1.hero-title .highlight-coral{color:var(--accent-secondary);font-style:italic}.tj-portfolio .hero-sub{max-width:580px;color:var(--text-body);margin-top:26px;font-size:17px;line-height:1.7}.tj-portfolio .hero-cta{flex-wrap:wrap;align-items:center;gap:24px;margin-top:38px;display:flex}.tj-portfolio .btn-coral{font-family:var(--mono-font);letter-spacing:.03em;text-transform:uppercase;background:var(--accent-secondary);color:#fff;border-radius:8px;align-items:center;gap:10px;padding:16px 30px;font-size:13.5px;font-weight:600;transition:transform .2s,box-shadow .2s;display:inline-flex;box-shadow:0 4px 20px #e85a4f4d}.tj-portfolio .btn-coral:hover{transform:translateY(-2px);box-shadow:0 8px 28px #e85a4f66}.tj-portfolio .email-link{font-family:var(--mono-font);color:var(--text-body);border-bottom:1px solid var(--line);padding-bottom:3px;font-size:14px;transition:color .2s,border-color .2s}.tj-portfolio .email-link:hover{color:var(--accent-primary);border-color:var(--accent-primary)}.tj-portfolio .hero-meta{font-family:var(--mono-font);color:var(--text-body);flex-wrap:wrap;gap:28px;margin-top:36px;font-size:13px;display:flex}.tj-portfolio .hero-meta span{align-items:center;gap:8px;display:flex}.tj-portfolio .hero-meta svg{width:15px;height:15px;color:var(--accent-primary)}.tj-portfolio .hero-phone-container{justify-content:center;align-items:center;height:520px;display:flex;position:relative}.phone-canvas-wrapper{justify-content:center;align-items:center;width:100%;height:100%;transition:transform .6s cubic-bezier(.16,1,.3,1),opacity .4s;display:flex}.phone-canvas-wrapper.docked-corner{z-index:80;pointer-events:none;width:220px;height:380px;position:fixed;bottom:20px;right:20px}.tj-portfolio .phone-3d-device{width:270px;height:500px;transform-style:preserve-3d;filter:drop-shadow(-20px 20px 40px #00000040);position:relative}.tj-portfolio .device-chassis{border:10px solid var(--text-heading);background:var(--bg);width:100%;height:100%;box-shadow:inset 0 0 0 2px #ffffff1a, var(--card-shadow);border-radius:40px;position:relative;overflow:hidden}.tj-portfolio .device-notch{background:var(--text-heading);z-index:20;border-bottom-right-radius:12px;border-bottom-left-radius:12px;justify-content:center;align-items:center;width:110px;height:20px;display:flex;position:absolute;top:0;left:50%;transform:translate(-50%)}.tj-portfolio .camera-dot{background:var(--accent-primary);width:8px;height:8px;box-shadow:0 0 8px var(--accent-primary);border-radius:50%}.tj-portfolio .device-screen{border-top:3px solid;flex-direction:column;justify-content:space-between;width:100%;height:100%;padding:32px 18px 18px;transition:background .6s,border-color .6s;display:flex}.tj-portfolio .screen-header{justify-content:space-between;align-items:center;display:flex}.tj-portfolio .app-badge{font-family:var(--mono-font);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:6px;font-size:10.5px;font-weight:700;display:flex}.tj-portfolio .live-indicator{font-family:var(--mono-font);color:#fff;background:#fff3;border-radius:100px;padding:3px 8px;font-size:9px;font-weight:700}.tj-portfolio .screen-app-title{font-family:var(--display-font);color:#fff;margin-top:10px;font-size:24px;font-weight:700;line-height:1.15}.tj-portfolio .screen-highlights{flex-direction:column;gap:10px;margin-top:16px;display:flex}.tj-portfolio .highlight-card{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;background:#ffffff1f;border-radius:10px;padding:10px 12px 10px 18px;font-size:12px;font-weight:500;position:relative;overflow:hidden}.tj-portfolio .accent-stripe{width:4px;position:absolute;top:0;bottom:0;left:0}.tj-portfolio .screen-cta-btn{font-family:var(--mono-font);letter-spacing:.04em;color:#fff;border-radius:100px;justify-content:center;align-items:center;gap:8px;margin-top:14px;padding:12px;font-size:11px;font-weight:700;display:flex;box-shadow:0 4px 16px #0000004d}.tj-portfolio .ribbon-wrap{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface);width:100%;box-shadow:var(--card-shadow);margin:60px 0 -10px;overflow:hidden;transform:rotate(-1.5deg)}.tj-portfolio .ribbon{white-space:nowrap;width:max-content;animation:34s linear infinite tj-scroll;display:flex}@keyframes tj-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.tj-portfolio .ribbon span{font-family:var(--display-font);color:var(--text-body);align-items:center;gap:24px;padding:18px 30px;font-size:22px;font-weight:600;display:flex}.tj-portfolio .ribbon span.hi{color:var(--text-heading)}.tj-portfolio .ribbon-star{color:var(--accent-primary);font-size:16px}.tj-portfolio .section{padding:120px 0}.tj-portfolio .sec-eyebrow{font-family:var(--mono-font);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-primary);margin-bottom:14px;font-size:12px}.tj-portfolio .sec-eyebrow.centered{text-align:center}.tj-portfolio .sec-title{font-family:var(--display-font);letter-spacing:-.02em;color:var(--text-heading);max-width:680px;font-size:clamp(30px,4.2vw,48px);font-weight:700;line-height:1.15}.tj-portfolio .sec-title.centered{text-align:center;margin-left:auto;margin-right:auto}.tj-portfolio .highlight-teal{color:var(--accent-primary)}.tj-portfolio .subsection-label{font-family:var(--mono-font);letter-spacing:.06em;text-transform:uppercase;color:var(--text-body);align-items:center;gap:8px;margin-bottom:18px;font-size:12px;display:flex}.tj-portfolio .subsection-label .star-icon{color:var(--accent-primary)}.tj-portfolio .featured-skills-section{margin-top:40px;margin-bottom:50px}.tj-portfolio .featured-skills-grid{grid-template-columns:repeat(4,1fr);gap:20px;display:grid}.tj-portfolio .featured-skill-card{border:1px solid var(--line);background:var(--surface);box-shadow:var(--card-shadow);border-radius:16px;flex-direction:column;justify-content:space-between;min-height:140px;padding:26px;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex}.tj-portfolio .featured-skill-card:hover{box-shadow:var(--hover-shadow);border-color:var(--accent-primary);transform:translateY(-4px)}.tj-portfolio .featured-skill-top{justify-content:space-between;align-items:center;display:flex}.tj-portfolio .skill-icon-lg{font-size:32px;display:flex}.tj-portfolio .featured-skill-name{font-family:var(--display-font);color:var(--text-heading);margin-top:14px;font-size:20px;font-weight:700}.tj-portfolio .proficiency-tag{font-family:var(--mono-font);letter-spacing:.03em;color:var(--accent-primary);background:#0e7c7b1a;border-radius:100px;padding:4px 10px;font-size:11px;font-weight:600}.tj-portfolio .skills-filter-header{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;padding-bottom:12px;display:flex}.tj-portfolio .segmented-control{gap:16px;display:flex}.tj-portfolio .segmented-tab{font-family:var(--mono-font);letter-spacing:.04em;text-transform:uppercase;color:var(--text-body);cursor:pointer;background:0 0;border:none;padding:8px 12px;font-size:13px;transition:color .2s;position:relative}.tj-portfolio .segmented-tab:hover{color:var(--text-heading)}.tj-portfolio .segmented-tab.active{color:var(--accent-primary);font-weight:600}.tj-portfolio .tab-underline{background:var(--accent-primary);height:2px;box-shadow:0 0 10px var(--accent-primary);position:absolute;bottom:-13px;left:0;right:0}.tj-portfolio .secondary-skills-grid{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.tj-portfolio .secondary-skill-card{border:1px solid var(--line);background:var(--surface);box-shadow:var(--card-shadow);border-radius:12px;justify-content:space-between;align-items:center;padding:18px 20px;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex}.tj-portfolio .secondary-skill-card:hover{box-shadow:var(--hover-shadow);border-color:var(--line-highlight);transform:translateY(-3px)}.tj-portfolio .skill-card-inner{align-items:center;gap:12px;display:flex}.tj-portfolio .skill-icon-sm{font-size:22px;display:flex}.tj-portfolio .skill-title{font-family:var(--display-font);color:var(--text-heading);font-size:15px;font-weight:600}.tj-portfolio .proficiency-badge{font-family:var(--mono-font);color:var(--text-body);background:var(--surface-alt);border-radius:100px;padding:3px 10px;font-size:10.5px}.tj-portfolio .proficiency-badge.daily{color:var(--accent-primary);background:#0e7c7b1a}.tj-portfolio .proficiency-badge.production{color:var(--text-heading)}.tj-portfolio .exp-card-container{border:1px solid var(--line);background:var(--surface);box-shadow:var(--card-shadow);border-radius:20px;margin-top:48px;padding:40px}.tj-portfolio .exp-header{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-bottom:28px;display:flex}.tj-portfolio .exp-role{font-family:var(--display-font);color:var(--text-heading);font-size:26px;font-weight:700}.tj-portfolio .exp-company{color:var(--text-body);align-items:center;gap:8px;margin-top:6px;font-size:15px;display:flex}.tj-portfolio .exp-company .co-dot{background:var(--accent-primary);border-radius:50%;width:8px;height:8px;display:inline-block}.tj-portfolio .exp-date{font-family:var(--mono-font);color:var(--accent-primary);white-space:nowrap;border:1px solid #0e7c7b4d;border-radius:100px;padding:6px 16px;font-size:12.5px}.tj-portfolio .exp-group{margin-top:40px}.tj-portfolio .exp-group-title{font-family:var(--mono-font);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-primary);margin-bottom:22px;font-size:12px}.tj-portfolio .shipped-grid{grid-template-columns:repeat(3,1fr);gap:22px;display:grid}.tj-portfolio .shipped-card{border:1px solid var(--line);background:var(--surface-alt);border-radius:14px;padding:24px;transition:border-color .2s,box-shadow .2s,transform .2s;position:relative}.tj-portfolio .shipped-card:hover{border-color:var(--accent-primary);box-shadow:var(--hover-shadow);transform:translateY(-4px)}.tj-portfolio .shipped-header{align-items:center;gap:10px;margin-bottom:12px;display:flex}.tj-portfolio .brand-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.tj-portfolio .shipped-title{font-family:var(--display-font);color:var(--text-heading);font-size:17.5px;font-weight:600}.tj-portfolio .shipped-desc{color:var(--text-body);font-size:14px;line-height:1.65}.tj-portfolio .practice-list{flex-direction:column;gap:16px;padding:0;list-style:none;display:flex}.tj-portfolio .practice-item{color:var(--text-body);align-items:flex-start;gap:14px;font-size:15px;line-height:1.65;display:flex}.tj-portfolio .check-icon-wrap{width:24px;height:24px;color:var(--accent-primary);background:#0e7c7b1f;border:1px solid #0e7c7b4d;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;display:flex}.tj-portfolio .project-cards-grid{grid-template-columns:1fr 1fr;gap:32px;margin-top:56px;display:grid}.tj-portfolio .project-card-redesign{border:1px solid var(--line);background:var(--surface);box-shadow:var(--card-shadow);border-radius:20px;flex-direction:column;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;overflow:hidden}.tj-portfolio .project-card-redesign:hover{box-shadow:var(--hover-shadow);border-color:var(--accent-primary);transform:translateY(-4px)}.tj-portfolio .project-device-preview{border-bottom:1px solid var(--line);justify-content:center;align-items:flex-end;width:100%;height:180px;padding-top:20px;display:flex;overflow:hidden}.tj-portfolio .card-mini-bezel{border:6px solid var(--text-heading);background:var(--bg);border-bottom:none;border-top-left-radius:20px;border-top-right-radius:20px;flex-direction:column;width:190px;height:180px;display:flex;box-shadow:0 -4px 20px #00000026}.tj-portfolio .card-mini-bezel .mini-notch{background:var(--text-heading);border-bottom-right-radius:8px;border-bottom-left-radius:8px;width:60px;height:12px;margin:0 auto}.tj-portfolio .card-mini-bezel .mini-screen{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:14px 10px;display:flex}.tj-portfolio .mini-app-badge{font-family:var(--mono-font);letter-spacing:.05em;align-items:center;gap:4px;font-size:9.5px;font-weight:700;display:flex}.tj-portfolio .mini-app-label{font-family:var(--display-font);color:var(--text-heading);text-align:center;font-size:13px;font-weight:700}.tj-portfolio .project-card-body{flex-direction:column;flex:1;gap:16px;padding:30px;display:flex}.tj-portfolio .project-card-header{justify-content:space-between;align-items:center;display:flex}.tj-portfolio .card-year{font-family:var(--mono-font);letter-spacing:.06em;text-transform:uppercase;color:var(--accent-primary);border:1px solid #0e7c7b4d;border-radius:100px;padding:4px 12px;font-size:11px}.tj-portfolio .project-brand-indicator{border-radius:50%;width:10px;height:10px}.tj-portfolio .project-card-title{font-family:var(--display-font);color:var(--text-heading);font-size:24px;font-weight:700}.tj-portfolio .project-card-desc{color:var(--text-body);font-size:14.5px;line-height:1.65}.tj-portfolio .tag-row{flex-wrap:wrap;gap:8px;margin-top:auto;display:flex}.tj-portfolio .tag{font-family:var(--mono-font);color:var(--text-heading);border:1px solid var(--line);background:var(--surface-alt);border-radius:100px;padding:5px 12px;font-size:11.5px}.tj-portfolio .play-store-btn{font-family:var(--mono-font);letter-spacing:.03em;text-transform:uppercase;color:var(--accent-primary);background:#0e7c7b0d;border:1px solid #0e7c7b4d;border-radius:100px;align-self:flex-start;align-items:center;gap:10px;margin-top:10px;padding:10px 20px;font-size:12px;transition:background .2s,border-color .2s;display:inline-flex}.tj-portfolio .play-store-btn:hover{border-color:var(--accent-primary);background:#0e7c7b1f}.tj-portfolio .play-icon{font-size:16px}.tj-portfolio .ext-icon{font-size:14px}.tj-portfolio .now-playing{border:1px solid var(--line);background:var(--surface);box-shadow:var(--card-shadow);border-radius:16px;align-items:center;gap:20px;max-width:600px;margin-top:70px;padding:22px 28px;display:flex}.tj-portfolio .vinyl{background:conic-gradient(from 0deg, var(--line), var(--surface-alt) 50%, var(--line));border:1px solid var(--line);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;animation:6s linear infinite tj-spin;display:flex}@keyframes tj-spin{to{transform:rotate(360deg)}}.tj-portfolio .vinyl:after{content:"";background:var(--accent-primary);width:14px;height:14px;box-shadow:0 0 8px var(--accent-primary);border-radius:50%}.tj-portfolio .np-text{font-size:14.5px;line-height:1.5}.tj-portfolio .np-text .label{font-family:var(--mono-font);color:var(--accent-primary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px;font-size:11px;display:block}.tj-portfolio .np-text b{color:var(--text-heading);font-weight:600}.tj-portfolio .np-text span.dim{color:var(--text-body)}.tj-portfolio .np-bars{align-items:flex-end;gap:3px;height:22px;margin-left:auto;display:flex}.tj-portfolio .np-bars i{background:var(--accent-primary);border-radius:2px;width:3px;animation:1s ease-in-out infinite tj-bar}.tj-portfolio .np-bars i:nth-child(2){animation-delay:.2s}.tj-portfolio .np-bars i:nth-child(3){animation-delay:.4s}@keyframes tj-bar{0%,to{height:6px}50%{height:20px}}.tj-portfolio .edu-grid{grid-template-columns:1fr 1fr;gap:24px;margin-top:56px;display:grid}.tj-portfolio .edu-card{border:1px solid var(--line);background:var(--surface);box-shadow:var(--card-shadow);border-radius:16px;padding:30px}.tj-portfolio .edu-card h4{font-family:var(--display-font);color:var(--text-heading);margin-bottom:8px;font-size:20px;font-weight:600}.tj-portfolio .edu-card .school{color:var(--text-body);margin-bottom:16px;font-size:14.5px}.tj-portfolio .edu-meta{font-family:var(--mono-font);color:var(--accent-primary);flex-wrap:wrap;gap:18px;font-size:12.5px;display:flex}.tj-portfolio footer{border-top:1px solid var(--line);margin-top:80px;padding-top:90px;position:relative;overflow:hidden}.tj-portfolio .foot-ribbon{font-family:var(--display-font);color:#0000;-webkit-text-stroke:1px var(--line);white-space:nowrap;letter-spacing:-.02em;width:max-content;margin-bottom:60px;font-size:14vw;font-weight:700;line-height:1;animation:30s linear infinite tj-scroll}.tj-portfolio .foot-grid{grid-template-columns:1.3fr .8fr .8fr .8fr;gap:40px;padding-bottom:60px;display:grid}.tj-portfolio .foot-brand h2{font-family:var(--display-font);color:var(--text-heading);margin-bottom:14px;font-size:30px;font-weight:700}.tj-portfolio .foot-brand p{color:var(--text-body);max-width:340px;margin-bottom:22px;font-size:14.5px;line-height:1.7}.tj-portfolio .avail-tag{font-family:var(--mono-font);text-transform:uppercase;letter-spacing:.05em;color:var(--accent-secondary);background:#e85a4f14;border:1px solid #e85a4f4d;border-radius:100px;align-items:center;gap:8px;padding:8px 16px;font-size:12px;display:inline-flex}.tj-portfolio .foot-col h4{font-family:var(--mono-font);letter-spacing:.06em;text-transform:uppercase;color:var(--accent-primary);margin-bottom:18px;font-size:12px}.tj-portfolio .foot-col a,.tj-portfolio .foot-col span{color:var(--text-body);margin-bottom:12px;font-size:14.5px;transition:color .2s,transform .2s;display:block}.tj-portfolio .foot-col a:hover{color:var(--text-heading);transform:translate(3px)}.tj-portfolio .foot-bottom{border-top:1px solid var(--line);font-family:var(--mono-font);color:var(--text-body);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:26px 0;font-size:12.5px;display:flex}.tj-portfolio .foot-bottom .socials{gap:20px;display:flex}.tj-portfolio .foot-bottom .socials a{color:var(--text-body);transition:color .2s}.tj-portfolio .foot-bottom .socials a:hover{color:var(--accent-primary)}.tj-portfolio [data-reveal]{opacity:1;transition:opacity .7s,transform .7s;transform:translateY(0)}.tj-portfolio [data-reveal]:not(.in){opacity:0;transform:translateY(24px)}.tj-portfolio [data-reveal].in{opacity:1;transform:translateY(0)}@media (width<=960px){.tj-portfolio .hero-grid{grid-template-columns:1fr}.tj-portfolio .hero-phone-container{height:auto;min-height:0;margin-top:24px}.tj-portfolio .ribbon-wrap{margin:40px 0 0;transform:none}.tj-portfolio .project-cards-grid{grid-template-columns:1fr}.tj-portfolio .featured-skills-grid{grid-template-columns:repeat(2,1fr)}.tj-portfolio .secondary-skills-grid{grid-template-columns:1fr 1fr}.tj-portfolio .shipped-grid,.tj-portfolio .edu-grid{grid-template-columns:1fr}.tj-portfolio .foot-grid{grid-template-columns:1fr 1fr;row-gap:36px}}@media (width<=768px){.tj-portfolio nav{padding:16px 20px;position:sticky}.tj-portfolio .hero-redesign{min-height:auto;padding-top:20px;padding-bottom:20px}.tj-portfolio .section{padding:60px 0}.tj-portfolio .menu-toggle{display:flex}.tj-portfolio .nav-right{background:var(--surface);border-bottom:1px solid var(--line);box-shadow:var(--card-shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);flex-direction:column;align-items:flex-start;gap:16px;padding:20px 24px;display:none;position:absolute;top:100%;left:0;right:0}.tj-portfolio .nav-right.open{display:flex}.tj-portfolio .nav-link{width:100%;padding:6px 0;font-size:16px}.tj-portfolio .wrap{padding:0 20px}.phone-canvas-wrapper.docked-corner{display:none}}.tj-portfolio .eyebrow-text-desktop{display:inline}.tj-portfolio .eyebrow-text-mobile{display:none}.tj-portfolio .tag-desktop{display:inline}.tj-portfolio .tag-mobile{display:none}.tj-portfolio .read-more-btn{color:var(--accent-primary);font-family:var(--mono-font);cursor:pointer;background:0 0;border:none;padding:4px 0 0;font-size:11.5px;text-decoration:underline;display:none}.tj-portfolio .meta-item{align-items:center;gap:8px;display:flex}@media (width<=600px){.tj-portfolio p,.tj-portfolio .hero-sub,.tj-portfolio .sec-title,.tj-portfolio .project-card-desc,.tj-portfolio .shipped-desc,.tj-portfolio .about-text p{text-align:left!important}.tj-portfolio .eyebrow-text-desktop,.tj-portfolio .tag-desktop{display:none!important}.tj-portfolio .eyebrow-text-mobile,.tj-portfolio .tag-mobile{display:inline!important}.tj-portfolio .eyebrow,.tj-portfolio .proficiency-tag,.tj-portfolio .proficiency-badge,.tj-portfolio .tag,.tj-portfolio .card-year,.tj-portfolio .nav-center-pill{white-space:nowrap!important;max-width:100%!important}.tj-portfolio .eyebrow{padding:5px 12px;font-size:11.5px}.tj-portfolio h1.hero-title{font-size:clamp(30px,7.5vw,40px);line-height:1.14}.tj-portfolio .hero-meta{flex-direction:column;align-items:flex-start;gap:12px;margin-top:24px}.tj-portfolio .segmented-control-wrapper{-webkit-overflow-scrolling:touch;width:100%;padding-bottom:8px;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 80%,#0000 100%);mask-image:linear-gradient(90deg,#000 80%,#0000 100%)}.tj-portfolio .segmented-control{flex-wrap:nowrap;gap:6px;width:max-content}.tj-portfolio .segmented-tab{white-space:nowrap;padding:6px 10px;font-size:12px}.tj-portfolio .featured-skills-grid{grid-template-columns:1fr 1fr;gap:12px}.tj-portfolio .secondary-skills-grid{grid-template-columns:1fr;gap:10px}.tj-portfolio .featured-skill-card{min-height:110px;padding:16px}.tj-portfolio .featured-skill-name{margin-top:8px;font-size:16px}.tj-portfolio .shipped-desc.clamped{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.tj-portfolio .shipped-desc.expanded{display:block}.tj-portfolio .read-more-btn{display:inline-block}.tj-portfolio .project-device-preview{height:125px;padding-top:10px}.tj-portfolio .card-mini-bezel{width:150px;height:125px}.tj-portfolio .project-card-body{gap:12px;padding:20px}.tj-portfolio .project-card-title{font-size:20px}.tj-portfolio .tag-row{flex-wrap:nowrap;padding-bottom:4px;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 85%,#0000 100%);mask-image:linear-gradient(90deg,#000 85%,#0000 100%)}.tj-portfolio footer{z-index:10;margin-top:40px;position:relative;overflow:hidden}.tj-portfolio .foot-ribbon{pointer-events:none;z-index:0}.tj-portfolio .foot-brand h2{margin-bottom:18px;font-size:26px}.tj-portfolio .foot-brand p{margin-bottom:24px}}@media (prefers-reduced-motion:reduce){.tj-portfolio .ribbon,.tj-portfolio .foot-ribbon,.tj-portfolio .vinyl,.tj-portfolio .np-bars i{animation:none!important}.tj-portfolio [data-reveal]{opacity:1!important;transition:none!important;transform:none!important}}
