
:root{color-scheme:dark;--bg:#04162b;--surface:#082541;--surface2:#092d4d;--ink:#f2f8ff;--muted:#abc1d9;--cyan:#55d1ff;--line:#2d709a77;--ring:#4dbdff55;--shadow:0 22px 70px #01081460;--radius:32px}
*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:108px}body{margin:0;min-width:0;overflow-x:clip;color:var(--ink);background:var(--bg);font:16px/1.6 system-ui,-apple-system,"Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased}body.lock{overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:3px solid #a1e5ff;outline-offset:4px}::selection{background:#58d4ff;color:#03132c}svg{display:block;flex-shrink:0}main{position:relative}.grid-bg{position:fixed;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(#4bc4ff0a 1px,transparent 1px),linear-gradient(90deg,#4bc4ff0a 1px,transparent 1px);background-size:26px 26px;mask-image:linear-gradient(#000 4%,#0008 80%,transparent)}.shell{width:min(1270px,calc(100% - 64px));margin:0 auto}.text-cyan{color:var(--cyan)}.overline{font-size:11px;font-weight:760;letter-spacing:.19em;text-transform:uppercase;color:var(--cyan)}.eyebrow{display:flex;align-items:center;gap:14px}.eyebrow:before{content:"";width:40px;height:2px;border-radius:20px;background:var(--cyan)}
.site-header{position:sticky;top:14px;z-index:90;width:min(1270px,calc(100% - 64px));margin:14px auto 22px;border:1px solid #2581b7a0;border-radius:100px;background:#062341ec;box-shadow:0 10px 35px #010d22a6, inset 0 1px #9ae8ff15;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}.nav-inner{height:68px;padding:0 19px 0 24px;display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{display:flex;align-items:center;gap:16px;font-size:19px;font-weight:800;letter-spacing:-.045em;white-space:nowrap}.monogram{display:grid;place-items:center;height:44px;width:44px;border:2px solid #5bd1ff;border-radius:50%;font-size:16px;letter-spacing:-.04em;box-shadow:0 0 18px #42bffd25,inset 0 0 0 5px #2ba6ff18}.desktop-nav{display:flex;align-items:center;gap:37px;font-size:13px}.desktop-nav a{color:#d5e8fa;transition:color .2s}.desktop-nav a:hover,.desktop-nav a.active{color:var(--cyan)}.contact-pill{min-width:148px;min-height:47px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 20px;border:1px solid #4bc6ff;border-radius:100px;background:linear-gradient(135deg,#0a5286,#064077);font-weight:670;color:#c7f2ff!important;box-shadow:inset 0 1px #ffffff1f}.contact-pill:hover{background:#116598}.mobile-toggle{display:none;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:#10385c;color:#fff;align-items:center;justify-content:center}.mobile-menu{display:none}
.hero{padding:8px 0 20px}.hero-columns{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.96fr);gap:22px;align-items:stretch}.hero-copy{position:relative;min-width:0;min-height:490px;padding:34px 28px 22px;border:1px solid #1a79a368;border-radius:42px;overflow:hidden;background:linear-gradient(148deg,#0a34523d,#03142928 67%)}.hero-copy:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 60% 74%,#3dbbff10,transparent 60%);pointer-events:none}.coords{position:relative;font:12px ui-monospace,Consolas,monospace;letter-spacing:.06em;color:var(--cyan);margin:0 0 32px}.hero-copy h1{position:relative;font-size:clamp(58px,6.5vw,100px);line-height:.97;letter-spacing:-.085em;margin:28px 0 20px;font-weight:870;text-wrap:balance}.hero-copy h1 span{display:block;color:var(--cyan);text-shadow:0 2px 30px #29acff18}.hero-lead{position:relative;max-width:520px;margin:0;color:#b2cae4;font-size:clamp(16px,1.65vw,20px);line-height:1.53;font-weight:390}.action-row{display:flex;flex-wrap:wrap;gap:13px;margin:26px 0 0}.btn{border:1px solid #59d6ff;border-radius:100px;min-height:54px;padding:13px 25px;display:inline-flex;justify-content:center;align-items:center;gap:12px;font-size:14px;font-weight:750;transition:transform .2s,box-shadow .2s,background .2s;white-space:nowrap}.btn:hover{transform:translateY(-3px)}.btn.primary{background:linear-gradient(135deg,#8ee8ff,#40c5fc);color:#05203e;box-shadow:0 10px 28px #39bdff38;border-color:transparent}.btn.ghost{background:#061e36a5;color:#eff9ff}.btn.ghost:hover{background:#13466a}.hero-keywords{display:flex;align-items:center;flex-wrap:wrap;gap:14px;color:#adcadf;margin-top:27px;font-size:10px;letter-spacing:.04em;position:relative}.hero-keywords b{font-size:16px;color:var(--cyan)}
.hero-photo{min-height:490px;border:1px solid #37a3db83;background:#0c2a44;border-radius:42px;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff24}.hero-photo .portrait{position:absolute;width:100%;height:100%;inset:0;object-fit:cover;object-position:center 32%;filter:saturate(.93) contrast(1.03)}.hero-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#051b32ec 0%,#041a3125 32%,transparent 60%),linear-gradient(90deg,#0325403c,transparent 27%);pointer-events:none}.photo-rim{position:absolute;inset:13px;border:1px solid #8bdaff45;border-radius:31px;z-index:2;pointer-events:none}.photo-corner{position:absolute;z-index:3;color:#8bddff;background:#061f37bb;backdrop-filter:blur(12px);border:1px solid #5ecbff91;border-radius:100px;padding:8px 16px;font-size:11px;letter-spacing:.08em;font-weight:750}.photo-corner.one{top:34px;right:29px}.photo-corner.two{bottom:108px;left:25px}.photo-corner.three{bottom:108px;right:25px}.photo-footer{position:absolute;z-index:3;bottom:19px;left:28px;right:28px;border-top:1px solid #a3dfff4a;padding-top:13px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px;color:#c9e9fa;letter-spacing:.05em}.photo-footer strong{font-size:15px;color:#f0f9ff;letter-spacing:-.02em}.photo-mark{position:absolute;z-index:2;top:92px;left:22px;font:24px monospace;color:#b2e9ff99}
.quick-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 auto 22px}.quick-card{position:relative;display:block;min-height:251px;padding:22px 22px 20px;border:1px solid #278dbe8b;border-radius:29px;background:linear-gradient(150deg,#0a3658cc,#061c36de);overflow:hidden;transition:transform .25s,background .25s,border-color .25s;isolation:isolate}.quick-card:hover{transform:translateY(-5px);background:#0b3a60;border-color:#59cbfa}.quick-card:after{content:"";position:absolute;inset:0;background-image:linear-gradient(#67c5ff08 1px,transparent 1px),linear-gradient(90deg,#67c5ff08 1px,transparent 1px);background-size:20px 20px;z-index:-1}.card-top{display:flex;justify-content:space-between;align-items:center}.circle-icon{width:45px;height:45px;display:grid;place-items:center;border-radius:50%;border:1px solid #4cc5fc91;color:#68d4ff;background:#083254aa}.card-count{font-size:12px;color:#a3bdcd}.quick-card h3{font-size:22px;letter-spacing:-.045em;margin:17px 0 5px;line-height:1.2}.quick-card p{font-size:13px;color:#b2c8de;line-height:1.55;max-width:220px;margin:0;position:relative;z-index:2}.mini-arrow{position:absolute;right:18px;top:117px;border-radius:50%;border:1px solid #5bcaff;width:31px;height:31px;display:grid;place-items:center;color:#60d2ff}.card-art{position:absolute;bottom:-17px;right:-6px;left:45px;height:90px;opacity:.8;z-index:-1}.card-art svg{width:100%;height:100%}.card-art.lines{height:105px;bottom:-30px}.card-art.blocks{left:auto;right:-6px;width:175px;bottom:-12px}
.content-section{padding:92px 0;scroll-margin-top:90px}.section-label{font-size:12px;color:var(--cyan);letter-spacing:.13em;font-weight:700;margin-bottom:19px;display:flex;gap:14px;align-items:center}.section-label:after{content:"";height:1px;width:40px;background:#4ea9d771}.section-title{font-size:clamp(32px,4.7vw,64px);font-weight:790;line-height:1.08;letter-spacing:-.062em;margin:0 0 24px}.section-sub{max-width:700px;color:var(--muted);font-size:16px;line-height:1.7}.panel{border:1px solid #3287b35c;border-radius:35px;background:linear-gradient(145deg,#092d4ab3,#061d36b8);box-shadow:inset 0 1px #ffffff0b}.about-panel{padding:36px 44px;display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center}.about-panel h2{font-size:clamp(33px,3.25vw,52px);letter-spacing:-.06em;line-height:1.14;margin:0}.about-panel p{margin:0;color:#bbd0e4;line-height:1.85}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:16px}.metric{border:1px solid #2c7eb165;border-radius:24px;padding:25px;background:#0827438f}.metric strong{font-size:29px;line-height:1.2;letter-spacing:-.06em;display:block}.metric span{font-size:12px;color:#b4ccdf}.expertise-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.expertise-card{padding:27px;min-height:230px;display:flex;flex-direction:column;justify-content:space-between}.expertise-card .small-label{font-size:11px;color:var(--cyan);letter-spacing:.15em}.expertise-card h3{margin:14px 0 8px;font-size:25px;letter-spacing:-.055em}.expertise-card p{font-size:14px;line-height:1.65;margin:0;color:var(--muted)}.career{display:grid;grid-template-columns:.8fr 1.2fr;gap:32px}.career-info{position:sticky;top:116px;align-self:start}.timeline{padding:9px 28px}.timeline-item{display:grid;grid-template-columns:115px 1fr;gap:17px;padding:24px 0;border-bottom:1px solid #72b9dc2d}.timeline-item:last-child{border:0}.timeline-item time{font-size:13px;color:var(--cyan);font-weight:720}.timeline-item h3{font-size:20px;letter-spacing:-.035em;margin:0 0 6px}.timeline-item p{font-size:13px;color:var(--muted);margin:0}.projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.project{padding:27px;min-height:292px;position:relative;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;text-align:left;color:inherit;transition:transform .2s,border-color .2s}.project:hover{transform:translateY(-4px);border-color:#51caff}.project:before{content:"";position:absolute;width:260px;height:260px;border-radius:50%;border:1px solid #4fcaff39;right:-85px;top:-130px;box-shadow:0 0 0 35px #3cbbff0b,0 0 0 70px #3cbbff06}.project-tag{position:relative;color:var(--cyan);font-size:11px;font-weight:760;letter-spacing:.1em}.project h3{position:relative;margin:0;font-size:31px;letter-spacing:-.055em}.project p{position:relative;margin:4px 0 0;color:#b8cde0;font-size:14px}.project-arrow{position:absolute;right:25px;bottom:24px;color:var(--cyan);font-size:24px}.contact-panel{padding:44px;display:flex;justify-content:space-between;align-items:center;gap:32px}.contact-panel h2{margin:0 0 14px;font-size:clamp(36px,5vw,74px);letter-spacing:-.075em;line-height:1}.contact-panel p{color:var(--muted);max-width:600px;font-size:15px;margin:0}.socials{display:flex;flex-wrap:wrap;gap:12px;margin-top:25px}.socials a{padding:9px 16px;border:1px solid #488db681;border-radius:100px;font-size:13px;color:#d3eaf9}.socials a:hover{background:#155178}footer{border-top:1px solid #2a72906b;padding:23px 0 32px;color:#a5bfd7;font-size:12px}.footer-inner{display:flex;gap:20px;justify-content:space-between;align-items:center}.footer-inner a:hover{color:var(--cyan)}
.modal-backdrop{position:fixed;inset:0;background:#010916d8;z-index:130;display:none;align-items:center;justify-content:center;padding:18px;backdrop-filter:blur(6px)}.modal-backdrop.open{display:flex}.modal-box{width:min(790px,100%);max-height:min(92dvh,920px);overflow:auto;padding:30px;border:1px solid #4dbefa82;border-radius:30px;background:#092844;box-shadow:var(--shadow)}.modal-close{float:right;border:1px solid #368bbb;border-radius:100px;background:#14395c;color:#fff;width:40px;height:40px;font-size:25px;line-height:1}.modal-box h2{font-size:35px;letter-spacing:-.055em;margin:17px 0 8px}.modal-box p{color:var(--muted);margin:0 0 20px}.modal-box .modal-notice{margin-top:20px;font-size:12px;opacity:.8}.modal-box .modal-fields{display:flex;flex-wrap:wrap;gap:8px}.modal-box .modal-fields span{border-radius:99px;background:#155078;border:1px solid #4eacd566;padding:6px 11px;font-size:12px}
@media(max-width:1100px){.shell,.site-header{width:min(100% - 36px,1270px)}.desktop-nav{gap:20px}.hero-copy{padding:28px 24px}.hero-copy h1{font-size:clamp(54px,6.75vw,88px)}.hero-copy,.hero-photo{min-height:465px}.quick-card{padding:20px}.quick-card h3{font-size:21px}.mini-arrow{top:114px}} 
@media(max-width:790px){.site-header{top:10px;margin:10px auto 16px;border-radius:30px}.nav-inner{height:62px;padding:0 14px}.brand{font-size:16px;gap:10px}.monogram{height:40px;width:40px}.desktop-nav{display:none}.mobile-toggle{display:flex}.mobile-menu{display:none;position:absolute;left:0;right:0;top:calc(100% + 9px);padding:10px;background:#07263f;border:1px solid #4dbae185;border-radius:25px;box-shadow:0 16px 45px #01101bd0}.mobile-menu.open{display:grid}.mobile-menu a{padding:14px 16px;border-radius:15px;font-weight:650;font-size:14px}.mobile-menu a:hover{background:#154364}.hero-columns{grid-template-columns:minmax(0,1fr);gap:13px}.hero-copy{min-height:0;padding:28px 25px 31px;border-radius:31px}.hero-copy h1{font-size:clamp(58px,11vw,92px);margin:22px 0}.coords{margin-bottom:24px}.hero-photo{min-height:450px;border-radius:31px}.photo-rim{border-radius:22px}.quick-links{grid-template-columns:repeat(2,minmax(0,1fr))}.content-section{padding:64px 0}.about-panel{grid-template-columns:1fr;gap:19px}.career{grid-template-columns:1fr}.career-info{position:static}.career-info .section-sub{margin-bottom:4px}}
@media(max-width:480px){.shell,.site-header{width:calc(100% - 24px)}.hero{padding-top:0}.hero-copy{padding:24px 19px 25px;border-radius:27px}.hero-copy h1{font-size:clamp(48px,13.4vw,68px);line-height:.99;letter-spacing:-.075em;margin:22px 0}.coords{font-size:10px;margin-bottom:23px}.eyebrow{font-size:10px}.hero-lead{font-size:16px}.action-row{gap:9px;margin-top:23px}.btn{font-size:12px;padding:11px 16px;min-height:45px}.hero-keywords{gap:8px 11px;font-size:9px;margin-top:24px}.hero-photo{min-width:0;width:100%;min-height:350px;height:clamp(350px,100vw,430px);aspect-ratio:auto}.hero-photo .portrait{object-position:50% 25%}.photo-corner{font-size:9px;padding:6px 11px}.photo-corner.one{top:25px;right:21px}.photo-corner.two{bottom:87px;left:16px}.photo-corner.three{bottom:87px;right:16px}.photo-footer{bottom:16px;left:18px;right:18px;font-size:10px;flex-wrap:wrap}.photo-footer strong{font-size:12px}.quick-links{gap:10px}.quick-card{padding:16px;border-radius:23px;min-height:205px}.circle-icon{width:39px;height:39px}.quick-card h3{font-size:20px;margin:15px 0 5px}.quick-card p{font-size:11px}.mini-arrow{width:26px;height:26px;right:12px;top:103px}.card-art{opacity:.55}.section-title{font-size:clamp(34px,10vw,48px)}.about-panel{padding:25px 21px;border-radius:24px}.about-panel h2{font-size:32px}.about-panel p{font-size:14px}.metrics{gap:8px}.metric{padding:17px 12px;border-radius:17px}.metric strong{font-size:21px}.metric span{font-size:10px}.expertise-grid,.projects{grid-template-columns:1fr}.expertise-card{min-height:185px;border-radius:24px}.timeline{padding:4px 18px;border-radius:24px}.timeline-item{grid-template-columns:82px 1fr;gap:9px;padding:19px 0}.timeline-item h3{font-size:17px}.project{min-height:244px;border-radius:24px}.contact-panel{padding:26px 22px;display:block;border-radius:25px}.contact-panel .btn{margin-top:25px}.footer-inner{align-items:start;flex-direction:column;gap:7px}.modal-box{padding:22px;border-radius:24px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Education — same Blueprint Rounded family */
.education-heading{display:grid;grid-template-columns:1.06fr .94fr;align-items:end;gap:30px;margin-bottom:27px}
.education-heading .section-title{margin-bottom:0}
.education-heading .section-sub{margin:0 0 6px;max-width:520px}
.education-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.education-card{position:relative;padding:29px 31px 25px;min-height:350px;overflow:hidden;isolation:isolate;background:radial-gradient(circle at 85% 22%,#17578c46,transparent 48%),linear-gradient(145deg,#0a3454,#061b33)}
.education-card:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(#67c5ff08 1px,transparent 1px),linear-gradient(90deg,#67c5ff08 1px,transparent 1px);background-size:22px 22px;opacity:.8;z-index:-1}
.education-card:after{content:"";position:absolute;width:270px;height:270px;border:1px solid #46bfff27;border-radius:50%;top:-130px;right:-80px;box-shadow:0 0 0 31px #41baff08,0 0 0 65px #41baff05;pointer-events:none}
.education-card-head{display:flex;gap:12px;justify-content:space-between;align-items:center;flex-wrap:wrap}
.education-type{display:inline-flex;align-items:center;gap:9px;color:#8cddff;font-size:11px;font-weight:800;letter-spacing:.115em}
.education-dot{width:8px;height:8px;border-radius:50%;background:#54d4ff;box-shadow:0 0 0 4px #4dccff1b}
.education-period{padding:7px 14px;background:#0e4366ad;border:1px solid #5bc5ff65;border-radius:999px;color:#cceaff;font-size:12px;font-weight:750;white-space:nowrap}
.education-symbol{width:79px;height:79px;display:grid;place-items:center;border-radius:25px;margin:42px 0 21px;background:linear-gradient(135deg,#145e8863,#0b37586c);border:1px solid #4fc6ff70;color:#6fd6ff;box-shadow:inset 0 1px #fff2}
.education-card h3{font-size:clamp(25px,2.5vw,34px);line-height:1.12;letter-spacing:-.045em;margin:0 0 5px}
.education-university{font-size:15px;color:#bed3e6;margin:0}
.education-card-bottom{border-top:1px solid #60b4df40;padding-top:17px;margin-top:27px;display:flex;justify-content:space-between;gap:12px;color:#80bddd;font-size:10px;letter-spacing:.1em}
@media(max-width:980px){.desktop-nav{display:none}.mobile-toggle{display:flex}.mobile-menu{display:none;position:absolute;left:0;right:0;top:calc(100% + 9px);padding:10px;background:#07263f;border:1px solid #4dbae185;border-radius:25px;box-shadow:0 16px 45px #01101bd0}.mobile-menu.open{display:grid}.mobile-menu a{padding:14px 16px;border-radius:15px;font-weight:650;font-size:14px}.mobile-menu a:hover{background:#154364}}
@media(max-width:790px){.education-heading{grid-template-columns:1fr;gap:14px}.education-grid{gap:13px}.education-card{padding:25px;min-height:315px}.education-symbol{margin:29px 0 17px}}
@media(max-width:620px){.education-grid{grid-template-columns:1fr}.education-card{min-height:295px;border-radius:26px}.education-symbol{width:69px;height:69px;border-radius:21px;margin:25px 0 19px}.education-card-bottom{margin-top:22px}}
@media(max-width:360px){.education-card{padding:20px}.education-card-head{align-items:flex-start}.education-period{font-size:11px}}

/* Blueprint 09 / balanced five-part navigation */
.quick-links{grid-template-columns:repeat(5,minmax(0,1fr));gap:13px}
.quick-card{min-height:253px;padding:20px 17px 17px;border-radius:28px}
.quick-card h3{font-size:21px;white-space:normal}
.quick-card p{font-size:12px;line-height:1.55;max-width:calc(100% - 14px)}
.quick-card .mini-arrow{right:14px;top:123px}
.quick-card .card-art{bottom:0;opacity:.65}
.quick-card-education{background:radial-gradient(circle at 100% 100%,#1a4c8380,transparent 54%),linear-gradient(155deg,#0b3658cc,#081d37ec)}
.quick-card:focus-visible{outline:3px solid #90e4ff;outline-offset:4px}
@media (max-width:1170px) and (min-width:791px){
 .quick-links{grid-template-columns:repeat(6,minmax(0,1fr))}
 .quick-links .quick-card{grid-column:span 2;min-height:220px}
 .quick-links .quick-card:nth-child(4),.quick-links .quick-card:nth-child(5){grid-column:span 3}
}
@media (max-width:790px){
 .quick-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .quick-links .quick-card{min-height:209px;padding:17px 15px}
 .quick-links .quick-card:nth-child(5){grid-column:1/-1;min-height:166px}
 .quick-links .quick-card:nth-child(5) p{max-width:66%}
 .quick-card .mini-arrow{top:100px;right:12px}
 .quick-links .quick-card:nth-child(5) .mini-arrow{top:86px}
}
@media (max-width:360px){.quick-card h3{font-size:18px}.quick-links .quick-card{min-height:216px;padding:15px 12px}.quick-card p{font-size:11px}}
.quick-links .quick-card .mini-arrow{top:auto;bottom:17px;right:15px;z-index:4;background:#082944ec;box-shadow:0 4px 16px #00122555}
@media(max-width:790px){.quick-links .quick-card .mini-arrow,.quick-links .quick-card:nth-child(5) .mini-arrow{top:auto;bottom:13px;right:13px}}
/* Education — degrees have distinct visual identities */
.education-card{min-height:385px;padding:27px 29px 22px;display:flex;flex-direction:column;justify-content:space-between;border-radius:34px}
.education-card--master{background:radial-gradient(circle at 95% 5%,#21688e66,transparent 50%),linear-gradient(145deg,#0a3957,#061e36)}
.education-card--bachelor{background:radial-gradient(circle at 100% 0%,#384c906b,transparent 50%),linear-gradient(145deg,#0c3153,#081b36)}
.education-card--master:after{width:220px;height:220px;top:-110px;right:-80px}
.education-card--bachelor:after{width:180px;height:180px;top:-95px;right:-60px;border-color:#7d98fd46;box-shadow:0 0 0 30px #899bff08,0 0 0 65px #899bff06}
.education-card--bachelor .education-dot{background:#a1a9ff;box-shadow:0 0 0 4px #869aff22}
.education-card--bachelor .education-type{color:#b6bfff}
.education-card--bachelor .education-period{color:#d8dfff;border-color:#849cfd61;background:#2d42696c}
.education-card-head{position:relative;z-index:2}
.education-main{position:relative;z-index:1;padding:9px 0 18px}
.education-symbol{margin:14px 0 18px;width:83px;height:83px;border-radius:27px}
.education-symbol--master{background:linear-gradient(140deg,#116e9b8f,#12395d88);border-color:#4fc6ff8c;color:#6ee0ff;box-shadow:0 10px 25px #030e254f,inset 0 1px #ffffff24}
.education-symbol--bachelor{background:linear-gradient(140deg,#3a598894,#172b548c);border-color:#93a7ff75;color:#b3c3ff;box-shadow:0 10px 25px #030e254f,inset 0 1px #ffffff24}
.education-degree-prefix{display:block;color:#74bce2;font-weight:700;font-size:10px;letter-spacing:.12em;margin-bottom:4px}
.education-card--bachelor .education-degree-prefix{color:#acb8f4}
.education-card h3{font-size:clamp(30px,3vw,43px);line-height:1.06;margin:0 0 13px;letter-spacing:-.055em}
.education-field{color:#f3f9ff;font-weight:700;font-size:17px;margin:0 0 1px}
.education-university{color:#b3cfe5;font-size:14px}
.education-card-bottom{margin:0;padding-top:18px;font-size:10px;align-items:center}
.education-card-mini{color:#d6f7ff;border:1px solid #60befa63;border-radius:99px;padding:4px 10px;letter-spacing:.03em}
.education-card--bachelor .education-card-mini{border-color:#9ba9ff7a;color:#dce3ff}
@media (max-width:790px){.education-card{min-height:355px;padding:25px}.education-symbol{margin:10px 0 17px}.education-main{padding:12px 0 18px}}
@media (max-width:620px){.education-grid{gap:13px}.education-card{min-height:340px;border-radius:27px}.education-card h3{font-size:36px}.education-symbol{width:78px;height:78px;border-radius:24px}}
@media (max-width:360px){.education-card{padding:21px}.education-card h3{font-size:33px}.education-type{font-size:10px}.education-card-bottom{font-size:9px}}

/* About / extended biography and personal details, designed for Blueprint 09 */
.profile-detail-grid{display:grid;grid-template-columns:minmax(0,1.13fr) minmax(0,.87fr);gap:16px;margin-top:16px}
.profile-detail-grid > *{min-width:0}
.personal-story,.personal-facts{position:relative;overflow:hidden;padding:31px 34px 30px;border-radius:34px;isolation:isolate}
.personal-story{background:radial-gradient(circle at 1% 0%,#0b589b39,transparent 55%),linear-gradient(140deg,#0b3352,#071c34)}
.personal-facts{background:radial-gradient(circle at 95% 0%,#1d61854f,transparent 58%),linear-gradient(145deg,#092d4a,#061b32)}
.personal-story:before,.personal-facts:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:-1;background-image:linear-gradient(#8cd5ff06 1px,transparent 1px),linear-gradient(90deg,#8cd5ff06 1px,transparent 1px);background-size:23px 23px}
.personal-facts:after{content:"";position:absolute;right:-118px;top:-145px;width:300px;height:300px;border:1px solid #4cbfff25;border-radius:50%;box-shadow:0 0 0 42px #42bfff0a,0 0 0 82px #42bfff06;z-index:-1}
.detail-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:19px}
.detail-icon{width:51px;height:51px;border-radius:18px;border:1px solid #5bcaff80;display:grid;place-items:center;background:#1c5a834c;color:#70d7ff}
.fact-icon{background:#2563973b;color:#a5dfff}
.detail-index{font-size:11px;font-weight:750;letter-spacing:.12em;color:#9bc3df;white-space:nowrap}
.profile-detail-grid h3{font-size:clamp(27px,2.7vw,36px);line-height:1.1;letter-spacing:-.055em;margin:0 0 22px;font-weight:800}
.story-prose p{font-size:15px;line-height:1.78;color:#bed1e4;margin:0 0 17px;max-width:70ch}
.story-prose p:last-child{margin-bottom:0}
.story-prose strong{color:#f0f9ff;font-weight:750}
.story-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}
.story-chips span{padding:7px 13px;color:#a9e4ff;background:#11507666;border:1px solid #4eaad566;border-radius:50px;font-size:11px;font-weight:750;letter-spacing:.03em}
.fact-list{display:block;margin:1px 0 0}
.fact-list > div{min-width:0;display:grid;grid-template-columns:minmax(0,118px) minmax(0,1fr);align-items:start;gap:14px;padding:13px 0;border-bottom:1px solid #62aad02c}
.fact-list > div:last-child{border-bottom:0;padding-bottom:0}
.fact-list dt{font-size:13px;color:#94b6d1;font-weight:560;margin:0}
.fact-list dd{margin:0;font-size:14px;line-height:1.55;color:#f0f8ff;font-weight:730;overflow-wrap:anywhere}
.fact-list dd a{color:#94e4ff;text-decoration:none;text-underline-offset:4px}
.fact-list dd a:hover{text-decoration:underline}
@media(max-width:920px){.profile-detail-grid{grid-template-columns:1fr}.personal-story,.personal-facts{padding:28px 30px}}
@media(max-width:480px){.profile-detail-grid{gap:11px;margin-top:12px}.personal-story,.personal-facts{padding:23px 21px;border-radius:25px}.detail-icon{width:45px;height:45px;border-radius:15px}.profile-detail-grid h3{font-size:29px;margin-bottom:18px}.story-prose p{font-size:14px;line-height:1.72;margin-bottom:15px}.detail-index{font-size:9px}.story-chips{margin-top:21px}.fact-list > div{grid-template-columns:minmax(0,99px) minmax(0,1fr);gap:8px;padding:12px 0}.fact-list dt{font-size:12px}.fact-list dd{font-size:13px}}
@media(max-width:350px){.fact-list > div{grid-template-columns:92px minmax(0,1fr)}.personal-story,.personal-facts{padding:21px 17px}}

/* Compact, consistent section rhythm: formerly 92px top+bottom per section */
:root{--section-gap:26px;--card-gap:14px}
main{padding-bottom:20px}
.content-section{padding:var(--section-gap) 0;scroll-margin-top:102px}
.hero{padding:8px 0 16px}
.quick-links{margin-bottom:4px;gap:var(--card-gap)}
.profile-detail-grid,.metrics,.expertise-grid,.education-grid,.projects{gap:var(--card-gap)}
.about-panel+.profile-detail-grid{margin-top:var(--card-gap)}
.profile-detail-grid+.metrics{margin-top:var(--card-gap)}
.content-section+.content-section{margin-top:0}
@media(max-width:790px){:root{--section-gap:18px;--card-gap:12px}.content-section{padding:var(--section-gap) 0}.quick-links{margin-bottom:3px}.site-header{margin-bottom:10px}}
.admin-hidden{display:none!important}
.custom-content{padding:32px 40px;line-height:1.8;color:var(--muted)}
.custom-content h2{font-size:clamp(26px,4vw,44px);color:var(--ink)}
.project-image{max-width:100%;height:140px;object-fit:cover;border-radius:16px;margin-top:8px;border:1px solid var(--line)}
.modal-preview{max-width:100%;max-height:340px;object-fit:cover;border-radius:18px;margin:18px 0 4px}
@media(max-width:600px){.custom-content{padding:23px}.modal-preview{max-height:240px}.modal-backdrop{padding:12px}.modal-box{width:100%}}

/* Project media gallery */
.modal-gallery{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 16px}.modal-gallery:empty{display:none}.modal-gallery button{background:#0d2a43;border:1px solid #31638a;border-radius:12px;padding:4px;width:74px;height:62px;cursor:pointer;overflow:hidden}.modal-gallery button.active{border-color:#5ad3ff;box-shadow:0 0 0 2px #5ad3ff44}.modal-gallery img{width:100%;height:100%;object-fit:cover;border-radius:8px}

/* CMS v1.4: consistent non-emoji separator across iPhone/Safari/Android. */
.hero-keywords .keyword-separator{display:inline-block;flex:none;width:6px;height:6px;background:var(--cyan);border-radius:50%;box-shadow:0 0 0 3px rgba(83,204,255,.13);align-self:center;margin:0 1px}

/* v1.8 — mobile scroll reveal (only when JS opts in). Never hide elements if JS is absent. */
@media (max-width:790px) and (prefers-reduced-motion:no-preference){
 .reveal-on-scroll{opacity:0;transition:transform .62s cubic-bezier(.2,.75,.25,1),opacity .62s ease;will-change:transform,opacity}
 .reveal-from-left{transform:translate3d(-28px,0,0)}
 .reveal-from-right{transform:translate3d(28px,0,0)}
 .reveal-on-scroll.revealed{opacity:1;transform:translate3d(0,0,0);will-change:auto}
}
@media(prefers-reduced-motion:reduce){.reveal-on-scroll{opacity:1!important;transform:none!important;transition:none!important}}

/* v1.9 — The navbar TD morphs into the managed hero photo as the user scrolls. */
.site-header .monogram{position:relative;isolation:isolate;flex:0 0 auto;overflow:hidden}
.site-header .monogram-letters{position:absolute;inset:0;display:grid;place-items:center;opacity:1;transition:opacity .32s ease,transform .32s ease}
.site-header .brand-avatar{position:absolute;inset:2px;width:calc(100% - 4px);height:calc(100% - 4px);border-radius:50%;object-fit:cover;object-position:center 30%;opacity:0;transform:scale(.75);transition:opacity .32s ease,transform .36s cubic-bezier(.2,.75,.25,1);pointer-events:none}
.site-header.avatar-active .brand-avatar{opacity:1;transform:scale(1)}
.site-header.avatar-active .monogram-letters{opacity:0;transform:scale(.82)}
@media(prefers-reduced-motion:reduce){.site-header .monogram-letters,.site-header .brand-avatar{transition:none!important}}

/* v1.10 — mobilde ortak-fotoğraf (shared element) uçuşu: kahraman portre tamamen
   ekran dışına çıktıktan sonra küçük portre menüdeki TD alanına akar. */
.site-header .monogram-letters{transition:opacity .22s ease,transform .26s ease}
.site-header.avatar-flying .monogram-letters{opacity:0;transform:scale(.83)}
.photo-flight-avatar{
 position:fixed!important;inset:auto!important;top:0!important;left:0!important;
 width:40px!important;height:40px!important;max-width:none!important;
 border:1.5px solid #60d5ff;border-radius:50%!important;
 object-fit:cover!important;object-position:center 30%!important;
 box-shadow:0 8px 26px #0009,0 0 20px #44caff55;
 pointer-events:none!important;z-index:115!important;
 will-change:transform,opacity;contain:paint;
}
@media(prefers-reduced-motion:reduce){.photo-flight-avatar{display:none!important}}

/* v1.12: proje URL'si yoksa CTA display:inline-flex kuralina ragmen gizlenir. */
#modalLink[hidden]{display:none!important}
/* v1.12: mobilde kart girisleri daha belirgin, fakat yatay layout olcusu degismez. */
@media(max-width:790px) and (prefers-reduced-motion:no-preference){
 .reveal-on-scroll{transition:transform .76s cubic-bezier(.16,.8,.22,1),opacity .72s ease}
 .reveal-on-scroll.reveal-from-left{transform:translate3d(-66px,0,0)}
 .reveal-on-scroll.reveal-from-right{transform:translate3d(66px,0,0)}
 .reveal-on-scroll.revealed{transform:translate3d(0,0,0)}
}
/* Portre altinda yalniz TD monogrami kalir. */
.hero-photo .photo-footer{justify-content:flex-end}


/* CMS v1.13 — bundled color schemes, scoped away from untouched Default. */
body.theme-styled {
 --palette-edge:color-mix(in srgb,var(--line) 62%,transparent);
 --palette-tint:color-mix(in srgb,var(--cyan) 8%,var(--surface));
 --palette-soft:color-mix(in srgb,var(--surface2) 60%,var(--surface));
 --palette-on-surface:var(--ink);
 --palette-text-soft:var(--muted);
 --shadow:0 22px 65px color-mix(in srgb,var(--bg) 32%,transparent);
 color:var(--ink);
 background:var(--bg);
}
.theme-styled .grid-bg{background-image:linear-gradient(color-mix(in srgb,var(--cyan) 9%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--cyan) 9%,transparent) 1px,transparent 1px)}
.theme-styled .site-header{background:color-mix(in srgb,var(--header-bg) 94%,transparent);border-color:var(--palette-edge);box-shadow:0 10px 35px color-mix(in srgb,var(--bg) 30%,transparent)}
.theme-styled .monogram{border-color:var(--cyan);box-shadow:0 0 16px color-mix(in srgb,var(--cyan) 22%,transparent),inset 0 0 0 5px color-mix(in srgb,var(--cyan) 8%,transparent)}
.theme-styled .desktop-nav a,.theme-styled .brand,.theme-styled .mobile-menu a{color:var(--ink)}
.theme-styled .desktop-nav a:hover,.theme-styled .mobile-menu a:hover{color:var(--cyan)}
.theme-styled .mobile-toggle,.theme-styled .mobile-menu{background:var(--surface);color:var(--ink);border-color:var(--palette-edge)}
.theme-styled .mobile-menu a:hover{background:var(--surface2)}
.theme-styled .hero-copy{background:linear-gradient(150deg,var(--palette-tint),color-mix(in srgb,var(--bg) 70%,var(--surface)));border-color:var(--palette-edge)}
.theme-styled .hero-copy:before{background:radial-gradient(ellipse at 60% 74%,color-mix(in srgb,var(--cyan) 8%,transparent),transparent 60%)}
.theme-styled .coords,.theme-styled .eyebrow,.theme-styled .hero-overline,.theme-styled .section-label{color:var(--cyan)}
.theme-styled .hero-lead,.theme-styled .hero-keywords,.theme-styled .section-sub{color:var(--muted)}
.theme-styled .btn{border-color:var(--cyan)}
.theme-styled .btn.primary{background:var(--cyan);border-color:var(--cyan);color:var(--button-ink);box-shadow:0 8px 24px color-mix(in srgb,var(--cyan) 15%,transparent)}
.theme-styled .btn.ghost{background:var(--surface);color:var(--ink)}
.theme-styled .hero-photo{border-color:var(--palette-edge)}
.theme-styled .quick-card,.theme-styled .quick-card-education,.theme-styled .panel,.theme-styled .personal-story,.theme-styled .personal-facts,.theme-styled .education-card,.theme-styled .education-card--master,.theme-styled .education-card--bachelor{
  color:var(--ink);background:linear-gradient(145deg,var(--surface2),var(--surface));border-color:var(--palette-edge);
}
.theme-styled .quick-card:hover,.theme-styled .project:hover{border-color:var(--cyan)}
.theme-styled .quick-card p,.theme-styled .quick-card .card-tag,.theme-styled .project p,.theme-styled .metric span,.theme-styled .expertise-card p,.theme-styled .timeline-item p,.theme-styled .contact-panel p{color:var(--muted)}
.theme-styled .quick-card h3,.theme-styled .quick-card strong,.theme-styled .project h3,.theme-styled .education-card h3,.theme-styled .personal-story h3,.theme-styled .personal-facts h3{color:var(--ink)}
.theme-styled .circle-icon,.theme-styled .mini-arrow,.theme-styled .detail-icon,.theme-styled .education-symbol{color:var(--cyan);border-color:var(--palette-edge);background:var(--palette-soft)}
.theme-styled .quick-card .mini-arrow{color:var(--cyan);background:var(--surface2);box-shadow:0 4px 16px color-mix(in srgb,var(--bg) 22%,transparent)}
.theme-styled .metric{background:var(--palette-soft);border-color:var(--palette-edge)}
.theme-styled .section-label:after,.theme-styled .timeline-item{border-color:var(--palette-edge)}
.theme-styled .section-label:after{background:var(--line)}
.theme-styled .education-type,.theme-styled .education-card--bachelor .education-type,.theme-styled .education-card--bachelor .education-degree-prefix,.theme-styled .education-degree-prefix,.theme-styled .education-dot{color:var(--cyan)}
.theme-styled .education-dot,.theme-styled .education-card--bachelor .education-dot{background:var(--cyan);box-shadow:0 0 0 4px color-mix(in srgb,var(--cyan) 15%,transparent)}
.theme-styled .education-period,.theme-styled .education-card--bachelor .education-period,.theme-styled .education-card-mini,.theme-styled .education-card--bachelor .education-card-mini{background:var(--palette-soft);border-color:var(--palette-edge);color:var(--ink)}
.theme-styled .education-card-bottom{color:var(--muted);border-color:var(--palette-edge)}
.theme-styled .education-card--master:after,.theme-styled .education-card--bachelor:after,.theme-styled .project:before{border-color:color-mix(in srgb,var(--cyan) 28%,transparent);box-shadow:0 0 0 30px color-mix(in srgb,var(--cyan) 4%,transparent)}
.theme-styled .education-field,.theme-styled .fact-list dd,.theme-styled .story-prose strong{color:var(--ink)}
.theme-styled .education-university,.theme-styled .story-prose p,.theme-styled .fact-list dt,.theme-styled .detail-index,.theme-styled .education-card-bottom{color:var(--muted)}
.theme-styled .story-chips span,.theme-styled .socials a,.theme-styled .modal-fields span{color:var(--ink);background:var(--palette-soft);border-color:var(--palette-edge)}
.theme-styled .socials a:hover{background:var(--surface2)}
.theme-styled .fact-icon,.theme-styled .fact-list dd a{color:var(--cyan)}
.theme-styled .education-symbol--master,.theme-styled .education-symbol--bachelor{border-color:var(--palette-edge);background:var(--palette-soft);color:var(--cyan)}
.theme-styled .modal-backdrop{background:color-mix(in srgb,var(--bg) 83%,transparent)}
.theme-styled .modal-box{color:var(--ink);background:var(--surface);border-color:var(--palette-edge)}
.theme-styled .modal-box p,.theme-styled .modal-box .modal-notice{color:var(--muted)}
.theme-styled .modal-close{background:var(--surface2);border-color:var(--palette-edge);color:var(--ink)}
.theme-styled .modal-gallery button{background:var(--surface2);border-color:var(--palette-edge)}
.theme-styled .modal-gallery button.active{border-color:var(--cyan)}
.theme-styled footer{border-color:var(--palette-edge);color:var(--muted)}
.theme-styled .footer-inner a{color:var(--ink)}
.theme-styled .footer-inner a:hover{color:var(--cyan)}
.theme-styled .card-art{opacity:.25}
@media(max-width:980px){.theme-styled .mobile-menu{background:var(--surface);border-color:var(--palette-edge)}}
.theme-styled .contact-pill{background:var(--surface2);border-color:var(--cyan);color:var(--ink)!important}
.theme-styled .contact-pill:hover{background:var(--palette-tint)}
.theme-styled .card-count,.theme-styled .about-panel p{color:var(--muted)}
.theme-styled ::selection{background:var(--cyan);color:var(--button-ink)}

/* v1.14 — Project cards: compact image thumbnail in the original card footprint. */
.project-card-body{position:relative;display:block;min-width:0;padding-bottom:13px}
.project-card-copy{min-width:0}
.project-card-copy h3{overflow-wrap:anywhere}
.project-has-cover .project-card-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(112px,37%);align-items:center;gap:16px;padding-bottom:27px}
.project-has-cover .project-card-copy h3{font-size:clamp(21px,2.15vw,30px);line-height:1.14}
.project-has-cover .project-card-copy p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden;line-height:1.5}
.project-cover{position:relative;display:block;min-width:0;width:100%;height:148px;overflow:hidden;border-radius:21px;border:1px solid color-mix(in srgb,var(--cyan) 30%,transparent);background:color-mix(in srgb,var(--surface) 75%,var(--bg));box-shadow:0 7px 30px #0002}
.project-cover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s ease}
.project:hover .project-cover img{transform:scale(1.055)}
.project-has-cover .project-arrow{z-index:1}
@media(max-width:1100px) and (min-width:481px){.project-has-cover .project-card-body{grid-template-columns:minmax(0,1fr) minmax(92px,32%);gap:11px}.project-cover{height:125px}}
@media(max-width:480px){.project-has-cover .project-card-body{grid-template-columns:minmax(0,1fr) minmax(105px,36%);gap:12px;padding-bottom:19px}.project-cover{height:128px;border-radius:17px}.project-has-cover .project-card-copy h3{font-size:clamp(20px,6vw,26px)}.project-has-cover .project-card-copy p{-webkit-line-clamp:4}.project-has-cover{min-height:244px}}
@media(max-width:350px){.project-has-cover .project-card-body{grid-template-columns:minmax(0,1fr) 102px;gap:9px}.project-cover{height:112px}}
/* Main project preview opens a fully contained, rounded image lightbox. */
#modalImage:not([hidden]){cursor:zoom-in}
#modalImage:focus-visible{outline:3px solid var(--cyan);outline-offset:4px}
.image-lightbox{position:fixed;inset:0;z-index:250;display:none;align-items:center;justify-content:center;padding:clamp(10px,2.5vw,30px);background:#030915de;backdrop-filter:blur(12px)}
.image-lightbox.open{display:flex}
.image-lightbox-card{display:flex;flex-direction:column;width:min(1100px,100%);max-height:calc(100dvh - 20px);min-width:0;padding:12px;border-radius:30px;border:1px solid color-mix(in srgb,var(--cyan) 35%,transparent);background:var(--surface,#082541);box-shadow:0 30px 100px #0009;color:var(--ink,#fff)}
.image-lightbox-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:1px 4px 10px 12px;font-size:12px;color:var(--muted,#aabbd1)}
.image-lightbox-close{width:39px;height:39px;flex:none;border:1px solid var(--line,#3a6289);border-radius:50%;background:var(--surface2,#163652);color:var(--ink,#fff);font-size:26px;cursor:pointer;line-height:1}
.image-lightbox-stage{position:relative;min-height:0;display:flex;align-items:center;justify-content:center}
.image-lightbox-stage img{display:block;max-width:100%;max-height:calc(100dvh - 112px);height:auto;width:auto;object-fit:contain;border-radius:20px}
.image-lightbox-nav{position:absolute;z-index:2;top:50%;transform:translateY(-50%);width:40px;height:48px;border-radius:16px;border:1px solid var(--line,#396a8d);background:var(--surface2,#163652);color:var(--ink,#fff);font-size:34px;cursor:pointer;display:grid;place-items:center;line-height:1;opacity:.94}
.image-lightbox-nav.prev{left:12px}.image-lightbox-nav.next{right:12px}
.image-lightbox-nav[hidden]{display:none!important}
.image-lightbox button:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}
@media(max-width:600px){.image-lightbox{padding:10px}.image-lightbox-card{padding:9px;border-radius:23px}.image-lightbox-stage img{max-height:calc(100dvh - 106px);border-radius:14px}.image-lightbox-nav{width:34px;height:44px;font-size:29px}.image-lightbox-nav.prev{left:5px}.image-lightbox-nav.next{right:5px}}
@media(prefers-reduced-motion:reduce){.project-cover img{transition:none!important}}


/* CMS v1.16 — wider project details: media left, text/actions right.
   Keeps the separate image lightbox and existing CMS theme variables. */
.modal-backdrop{padding:clamp(10px,2vw,24px)}
.modal-box{position:relative;width:min(1020px,100%);max-height:calc(100dvh - 28px);padding:32px 34px;border-radius:32px;overscroll-behavior:contain}
.modal-box .modal-close{position:absolute;float:none;top:22px;right:22px;z-index:2}
.modal-box .overline{padding-right:56px}
.modal-box h2{font-size:clamp(29px,3.4vw,42px);line-height:1.14;margin:12px 55px 23px 0;overflow-wrap:anywhere}
.modal-layout{display:grid;grid-template-columns:minmax(0, .98fr) minmax(0,1.02fr);align-items:start;gap:28px;min-width:0}
.modal-layout > *{min-width:0}
.modal-media{display:flex;flex-direction:column;gap:10px;min-width:0}
.modal-media .modal-preview{display:block;width:100%;max-width:100%;height:auto;aspect-ratio:4/3;max-height:370px;min-height:0;object-fit:contain;object-position:center;margin:0;border:1px solid var(--line);border-radius:21px;background:var(--surface2)}
.modal-media #modalImage[hidden]{display:none!important}
.modal-media .modal-gallery{margin:0;gap:9px}
.modal-media .modal-gallery button{flex:0 0 auto;width:75px;height:64px}
.modal-content{display:flex;flex-direction:column;gap:18px;min-width:0}
.modal-box .modal-content p{font-size:15px;line-height:1.85;white-space:pre-line;overflow-wrap:anywhere;margin:0;color:var(--muted)}
.modal-content .modal-fields{display:flex;flex-wrap:wrap;gap:8px}
.modal-content #modalLink{align-self:flex-start;margin-top:2px;max-width:100%}
.modal-layout:has(#modalImage[hidden]){grid-template-columns:minmax(0,1fr)}
.modal-media:has(#modalImage[hidden]){display:none}
@media(max-width:790px){
 .modal-box{padding:25px;max-height:calc(100dvh - 22px);border-radius:27px}
 .modal-layout{grid-template-columns:minmax(0,1fr);gap:20px}
 .modal-box h2{font-size:clamp(25px,5vw,34px);margin-bottom:18px}
 .modal-media .modal-preview{max-height:330px;aspect-ratio:16/10}
}
@media(max-width:480px){
 .modal-backdrop{padding:9px}
 .modal-box{padding:20px 18px;max-height:calc(100dvh - 18px);border-radius:24px}
 .modal-box .modal-close{top:15px;right:15px;width:36px;height:36px}
 .modal-box h2{font-size:27px;margin:12px 42px 15px 0}
 .modal-layout{gap:15px}
 .modal-media .modal-preview{max-height:230px;aspect-ratio:4/3;border-radius:16px}
 .modal-media .modal-gallery button{width:62px;height:55px}
 .modal-content{gap:13px}
 .modal-box .modal-content p{font-size:14px;line-height:1.75}
}


/* v1.17 — fixed-height details dialog: images and scrollable descriptions; actions at bottom. */
.modal-backdrop .modal-box{display:flex;flex-direction:column;overflow:hidden;height:min(680px,calc(100dvh - 28px));max-height:calc(100dvh - 28px);width:min(1050px,100%)}
.modal-box>.overline,.modal-box>h2{flex:0 0 auto}
.modal-box .modal-layout{flex:1 1 auto;min-height:0;overflow:hidden;align-items:stretch;grid-template-columns:minmax(0,.97fr) minmax(0,1.03fr);gap:24px}
.modal-box .modal-media{min-height:0;overflow:auto;overscroll-behavior:contain;padding-right:4px}
.modal-box .modal-media .modal-preview{flex:0 0 auto;max-height:min(39dvh,340px);min-height:0}
.modal-box .modal-content{min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:11px}
.modal-box .modal-scrollbox{min-height:0;flex:1 1 auto;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line) transparent;border:1px solid var(--line);border-radius:16px;padding:16px;background:var(--surface2);outline-offset:3px}
.modal-box .modal-scrollbox p{margin:0!important;white-space:pre-wrap;overflow-wrap:anywhere;font-size:15px;line-height:1.75;color:var(--muted)}
.modal-box .modal-fields{flex:0 0 auto;max-height:84px;overflow:auto;margin:0;padding:3px 0}
.modal-box .modal-footer{flex:0 0 auto;display:flex;align-items:center;justify-content:flex-end;gap:11px;margin-top:20px;padding-top:15px;border-top:1px solid var(--line);background:var(--surface)}
.modal-box .modal-footer .btn{margin:0;min-width:112px;justify-content:center}
.modal-box .modal-footer #modalLink[hidden]{display:none!important}
.modal-box .modal-layout:has(#modalImage[hidden]){grid-template-columns:minmax(0,1fr)}
.theme-styled .modal-scrollbox{border-color:var(--palette-edge);background:var(--palette-soft)}
.theme-styled .modal-footer{background:var(--surface);border-color:var(--palette-edge)}
@media(max-width:790px){
 .modal-backdrop .modal-box{height:min(740px,calc(100dvh - 18px));max-height:calc(100dvh - 18px)}
 .modal-box .modal-layout{display:flex;flex-direction:column;gap:12px}
 .modal-box .modal-media{flex:0 0 auto;max-height:min(35dvh,250px);overflow:auto;padding-right:0}
 .modal-box .modal-media .modal-preview{max-height:min(24dvh,195px);aspect-ratio:16/10}
 .modal-box .modal-content{flex:1 1 auto;min-height:0}
 .modal-box .modal-footer{margin-top:12px;padding-top:12px}
 .modal-box .modal-scrollbox{padding:12px}
}
@media(max-width:480px){
 .modal-backdrop .modal-box{height:calc(100dvh - 18px)}
 .modal-box .modal-media{max-height:min(31dvh,205px)}
 .modal-box .modal-media .modal-preview{max-height:min(21dvh,152px)}
 .modal-box .modal-gallery button{height:42px;width:53px}
 .modal-box .modal-footer .btn{min-height:42px;min-width:0;flex:1;font-size:13px}
 .modal-box .modal-footer .btn[hidden]{display:none!important}
 .modal-box .modal-scrollbox p{font-size:14px;line-height:1.65}
}
