
#ed-design{--ed-bg:#f8c17e;--ed-text:#362d28;--ed-muted:#6a4f3f;--ed-accent:#873c19;--ed-line:#b97d544d;background:var(--ed-bg);color:var(--ed-text);padding:64px 54px;font:15px/1.75 'Arial',sans-serif;display:grid;grid-template-columns:minmax(220px,.9fr) minmax(0,1.2fr);gap:70px;transition:none}#ed-design[data-dark=true]{--ed-bg:#132e26;--ed-text:#f4e6d8;--ed-muted:#bdc7b8;--ed-accent:#f5aa74;--ed-line:#a5bcaa35}#ed-design *{box-sizing:border-box}#ed-design a{color:inherit;text-decoration:none}#ed-design a:hover{color:var(--ed-accent)}#ed-design button{font:inherit;color:inherit}#ed-design h1{font-size:40px;line-height:1.1;letter-spacing:-1.5px;margin:0 0 14px;font-weight:600}#ed-design .role{font-size:19px;margin:0 0 12px}#ed-design .tagline{max-width:250px;color:var(--ed-muted);font-size:14px;margin:0}#ed-design nav{margin-top:40px;font-size:12px;letter-spacing:1px;text-transform:uppercase}#ed-design nav>a,#ed-design nav summary{display:flex;align-items:center;gap:13px;padding:8px 0;cursor:pointer;list-style:none}#ed-design nav>a:before,#ed-design nav summary:before{content:'';width:24px;height:1px;background:var(--ed-muted);transition:width .2s}#ed-design nav>a:hover:before{width:40px}#ed-design nav summary::-webkit-details-marker{display:none}#ed-design .subnav{display:flex;flex-direction:column;margin-left:37px;letter-spacing:0;text-transform:none;font-size:14px;padding:4px 0}#ed-design .subnav a{padding:6px 0}#ed-design details[open] .chev{transform:rotate(180deg)}#ed-design .chev{display:inline-block;transition:transform .2s}#ed-design .social{display:flex;gap:8px;margin:24px 0 0}#ed-design .social a,#ed-design .social button{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:none;border:0;cursor:pointer;color:var(--ed-muted)}#ed-design .social a:hover,#ed-design .social button:hover{color:var(--ed-accent)}#ed-design .social svg{width:21px;height:21px}#ed-design .lamp-area{margin-top:34px;position:relative;width:220px;max-width:100%}#ed-design .lamp{display:block;width:205px;max-width:100%;height:307px;object-fit:contain;transform-origin:50% 95%;filter:drop-shadow(0 3px 2px #38221212)}#ed-design .lamp-switch{position:absolute;left:66px;top:146px;width:64px;height:56px;background:transparent;border:0;border-radius:50%;cursor:pointer}#ed-design .lamp-switch:hover{background:#ffc88230}#ed-design .lamp-area p{font-family:'Comic Sans MS',cursive;font-size:13px;color:var(--ed-muted);margin:8px 0 0 20px;transform:rotate(-3deg)}#ed-design .wobble{animation:ed-wobble .6s ease}#ed-design[data-dark=true] .lamp{filter:brightness(.78)}@keyframes ed-wobble{25%{transform:rotate(-2deg)}65%{transform:rotate(1.5deg)}100%{transform:rotate(0)}}#ed-design main{min-width:0}#ed-design section{scroll-margin-top:25px;margin-bottom:62px}#ed-design h2{font-size:12px;text-transform:uppercase;letter-spacing:1.8px;font-weight:600;margin:0 0 24px}#ed-design p{margin:0 0 17px}#ed-design main p{color:var(--ed-muted)}#ed-design main strong{color:var(--ed-text);font-weight:500}#ed-design .job{display:grid;grid-template-columns:76px 1fr;gap:16px;margin-bottom:30px}#ed-design .date{font-size:11px;color:var(--ed-muted);padding-top:3px}#ed-design h3{font-size:15px;font-weight:600;line-height:1.5;margin:0 0 8px}#ed-design .job p{font-size:13px;line-height:1.8;margin-bottom:10px}#ed-design .stack{font-size:11px;color:var(--ed-accent);word-spacing:7px}#ed-design .resume{background:none;border:0;border-bottom:1px solid var(--ed-muted);padding:0;cursor:pointer;font-size:13px}#ed-design .project-type{font-size:12px;color:var(--ed-muted);margin-bottom:16px}#ed-design .software h3{font-size:21px;margin-bottom:3px}#ed-design .software p{font-size:14px}#ed-design .status{font-size:11px;color:var(--ed-accent);margin-bottom:12px}#ed-design .photos{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}#ed-design .photos button{background:none;border:0;padding:0;cursor:zoom-in}#ed-design .photos img{width:100%;height:245px;object-fit:cover;display:block;border-radius:3px}#ed-design .lamp-project h3{font-size:17px}#ed-design .lamp-project p{font-size:13px}#ed-design .project-heading{padding-bottom:15px;border-bottom:1px solid var(--ed-line);margin-bottom:27px}#ed-design .note{font-size:12px;color:var(--ed-muted);max-width:240px}#ed-design dialog{background:var(--ed-bg);color:var(--ed-text);border:1px solid var(--ed-line);border-radius:6px;padding:14px;max-width:90%;max-height:90%;}#ed-design dialog::backdrop{background:#0d1b16c9}#ed-design dialog img{max-height:65vh;max-width:100%;object-fit:contain;display:block}#ed-design dialog button{display:block;margin:10px 0 0 auto;background:none;border:0;cursor:pointer;padding:8px}#ed-design footer{font-size:11px;color:var(--ed-muted);border-top:1px solid var(--ed-line);padding-top:16px}
@media(min-width:740px){#ed-design .left-inner{position:sticky;top:28px}}
@media(max-width:739px){#ed-design{grid-template-columns:1fr;padding:34px 25px;gap:38px}#ed-design .left-inner{position:relative;padding-right:100px}#ed-design h1{font-size:34px}#ed-design .lamp-area{position:absolute;right:-14px;top:6px;width:100px;margin:0}#ed-design .lamp{width:100px;height:150px}#ed-design .lamp-switch{left:25px;top:63px;width:50px;height:44px}#ed-design .lamp-area p{font-size:11px;margin:2px 0}#ed-design nav{margin-top:23px}#ed-design .social{margin-top:16px}#ed-design section{margin-bottom:42px}#ed-design .photos img{height:220px}}
@media(prefers-reduced-motion:reduce){#ed-design,#ed-design *{animation:none!important;transition:none!important}}
#ed-design{grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:38px;padding:54px 34px}
#ed-design .tagline{max-width:none;white-space:nowrap;font-size:12px;letter-spacing:-.2px}
#ed-design .menu-wrap{position:relative;margin-top:30px;width:44px;height:44px;z-index:5}
#ed-design .menu-trigger{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;background:none;cursor:pointer}
#ed-design .menu-wrap nav{position:absolute;top:0;left:44px;width:215px;margin:0;padding:12px 18px;background:var(--ed-bg);border:1px solid var(--ed-line);border-radius:4px;box-shadow:0 9px 24px #17221815}
#ed-design [hidden]{display:none!important}
#ed-design .bulb-glow{position:absolute;left:66px;top:25px;width:75px;height:66px;border-radius:50%;background:radial-gradient(ellipse,#fffbd8c9 0%,#ffe28a70 32%,#ffc65a20 57%,transparent 73%);filter:blur(5px);pointer-events:none;mix-blend-mode:screen;transition:none}
#ed-design[data-dark=true] .bulb-glow{opacity:0}
#ed-design .lamp-switch{z-index:2}
#ed-design .social{gap:10px;margin-top:20px}
#ed-design .social svg{width:23px;height:23px}
#ed-design .social button[aria-disabled=true]{cursor:default}
@media(max-width:850px) and (min-width:740px){#ed-design{grid-template-columns:1fr;gap:32px}#ed-design .left-inner{position:relative}#ed-design .lamp-area{position:absolute;right:0;top:0;margin:0;transform:scale(.65);transform-origin:top right}}
@media(max-width:739px){#ed-design{grid-template-columns:1fr;padding:28px 20px}#ed-design .left-inner{padding-right:0}#ed-design .tagline{white-space:normal;text-wrap:pretty}#ed-design .lamp-area{top:145px;right:0}#ed-design .bulb-glow{left:32px;top:12px;width:37px;height:32px}#ed-design .menu-wrap{margin-top:22px}#ed-design .social{margin-top:14px}#ed-design .left-inner{min-height:310px}}
#ed-design{display:block;padding:38px 64px 46px}
#ed-design .left-inner{position:relative;min-height:282px;padding:43px 220px 30px 0}
#ed-design .lamp-area{position:absolute;right:5px;top:0;width:180px;margin:0;transform:none}
#ed-design .lamp{width:180px;height:270px}
#ed-design .lamp-switch{left:56px;top:130px;width:62px;height:52px;background:transparent}
#ed-design .lamp-switch:hover{background:transparent}
#ed-design .bulb-glow{left:58px;top:22px;width:66px;height:58px}
#ed-design .turn-note{position:absolute;right:130px;top:139px;white-space:nowrap;font:22px/1.2 'Caveat','Bradley Hand','Segoe Print',cursive;transform:rotate(-9deg);color:var(--ed-text);opacity:0;pointer-events:none;transition:opacity .12s}
#ed-design .lamp-switch:hover~.turn-note,#ed-design .lamp-switch:focus-visible~.turn-note{opacity:1}
#ed-design .tagline{font-size:13px;white-space:nowrap;letter-spacing:-.2px}
#ed-design .menu-wrap{position:absolute;top:-18px;left:-10px;margin:0}
#ed-design .social{margin-top:22px}
#ed-design main{width:100%}
#ed-design main section{margin-bottom:46px}
#ed-design #ed-about{max-width:730px}
#ed-design #ed-experience .job{grid-template-columns:116px 1fr;gap:24px;margin-bottom:26px}
#ed-design #ed-experience .job p{font-size:14px}
#ed-design .photos{max-width:560px}
@media(max-width:850px){#ed-design{padding:32px}#ed-design .left-inner{min-height:270px;padding-top:50px}#ed-design .tagline{font-size:12px}#ed-design .lamp-area{right:-15px;top:0;transform:none}}
@media(max-width:600px){#ed-design{padding:25px 22px}#ed-design .left-inner{min-height:240px;padding:45px 112px 15px 0}#ed-design h1{font-size:30px}#ed-design .role{font-size:16px}#ed-design .tagline{white-space:normal;font-size:12px}#ed-design .lamp-area{right:-17px;top:35px;width:130px}#ed-design .lamp{width:130px;height:195px}#ed-design .lamp-switch{left:36px;top:89px;width:54px;height:48px}#ed-design .bulb-glow{left:42px;top:16px;width:48px;height:42px}#ed-design .turn-note{right:96px;top:105px;font-size:18px}#ed-design .social{gap:2px;margin-left:-9px}#ed-design #ed-experience .job{grid-template-columns:1fr;gap:4px}#ed-design .menu-wrap{top:-10px}#ed-design .note{max-width:170px}}

html{scroll-behavior:smooth;background:#f8c17e}html[data-dark=true]{background:#132e26}body{margin:0}#ed-design{max-width:1100px;margin:auto;min-height:100vh}#ed-design main p{font-size:16px;line-height:1.8}#ed-design #ed-experience .job p{font-size:15px}#ed-design .stack,#ed-design .date,#ed-design footer{font-size:12px}#ed-design .tagline{font-size:14px}#ed-design .lamp-project p,#ed-design .software p{font-size:16px}#ed-design .project-type,#ed-design .status{font-size:14px}#ed-design .lamp-project{max-width:780px}#ed-design .social a,#ed-design .social button{width:44px;height:44px}#ed-design .social a:focus-visible,#ed-design button:focus-visible,#ed-design a:focus-visible{outline:2px solid var(--ed-accent);outline-offset:4px}#ed-design .lamp-area{z-index:1}#ed-design .menu-wrap{z-index:10}#ed-design .photos img{height:auto;aspect-ratio:3/4}#ed-design .photos button{align-self:start}#ed-design .github-icon{opacity:.6}#ed-design .skip-link{position:absolute;left:20px;top:-100px}#ed-design .skip-link:focus{top:5px;background:var(--ed-bg);z-index:30;padding:10px}#ed-design .turn-note{transition:opacity .12s}#ed-design .resume{display:inline-block;min-height:32px}#ed-design .social svg{display:block;width:23px;height:23px}@media(max-width:700px){#ed-design .tagline{white-space:normal}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}#ed-design .turn-note{transition:none}}
/* Independent transparent knob over an uninterrupted wood-grain base. */
#ed-design .knob-art{position:absolute;left:64px;top:130px;width:43px;height:43px;background:url('assets/lamp-knob-soft.png') center/contain no-repeat;transform:rotate(var(--knob-angle,270deg));transform-origin:center;transition:transform .35s cubic-bezier(.2,.8,.2,1);pointer-events:none}
#ed-design[data-dark=true] .knob-art{filter:brightness(.78)}
@media(max-width:600px){#ed-design .knob-art{left:46.22px;top:93.89px;width:31.06px;height:31.06px}}
@media(prefers-reduced-motion:reduce){#ed-design .knob-art{transition:none}}
/* Reuse the original silhouette to keep the base's exterior fully transparent. */
#ed-design .lamp{mask-image:url('assets/lamp-sketch.png');mask-size:100% 100%;mask-repeat:no-repeat;-webkit-mask-image:url('assets/lamp-sketch.png');-webkit-mask-size:100% 100%;-webkit-mask-repeat:no-repeat}
/* Keep the soft drawing's outer wash out of the wood layer. */
#ed-design .knob-art{clip-path:ellipse(40% 24.5% at 50% 50%)}
/* Comfortable touch targets and uncluttered project photos on phones. */
@media(max-width:600px){
 #ed-design .menu-wrap nav{top:44px;left:0;width:min(280px,calc(100vw - 44px));padding:10px 16px}
 #ed-design nav{font-size:14px;letter-spacing:.7px}
 #ed-design nav>a,#ed-design nav summary,#ed-design .subnav a{min-height:44px}
 #ed-design nav summary{gap:9px}
 #ed-design .subnav{font-size:16px}
 #ed-design .photos{grid-template-columns:1fr;gap:18px}
 #ed-design dialog{max-width:calc(100vw - 24px);padding:10px}
 #ed-design dialog button,#ed-design .resume{min-height:44px}
 #ed-design .social{flex-wrap:wrap}
}

/* Recruiting overview: direct navigation, clear contact links, readable prose. */
#ed-design .contact-links{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:22px}
#ed-design .contact-links a{font-size:15px;min-height:44px;display:inline-flex;align-items:center;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
#ed-design .social{margin-top:4px}
#ed-design main p,#ed-design .accomplishments{max-width:68ch}
#ed-design #ed-experience .job p,#ed-design .accomplishments{font-size:16px;line-height:1.8}
#ed-design .accomplishments{margin:0 0 12px;padding-left:20px;color:var(--ed-muted)}
#ed-design .accomplishments li{padding-left:3px;margin-bottom:9px}
#ed-design .accomplishments strong{font-weight:600}
#ed-design nav a[aria-current=page]{color:var(--ed-accent);font-weight:600;text-decoration:underline;text-underline-offset:6px}
#ed-design .menu-wrap nav{font-size:14px}
@media(min-width:740px){
 #ed-design .left-inner{padding-top:62px;min-height:310px}
 #ed-design .menu-wrap{position:absolute;top:-8px;left:0;width:auto;height:auto;right:220px}
 #ed-design .menu-trigger{display:none}
 #ed-design .menu-wrap nav{position:static;display:flex;flex-wrap:wrap;gap:4px 28px;width:auto;padding:0;border:0;box-shadow:none;background:transparent;letter-spacing:0;text-transform:none}
 #ed-design nav>a{min-height:44px;padding:8px 0}
 #ed-design nav>a:before{display:none}
}
@media(max-width:739px){
 #ed-design .left-inner{padding-top:50px;padding-bottom:28px}
 #ed-design .menu-wrap nav{top:44px;left:0;width:min(280px,calc(100vw - 44px));padding:10px 16px}
 #ed-design nav>a{min-height:44px}
 #ed-design .contact-links{gap:4px 18px;margin-top:16px}
 #ed-design .lamp-area{top:35px}
}
