  :root{
    --foam:#f6fbfc;
    --sea-pale:#bfe3e8;
    --sea:#4e9fb0;
    --sea-deep:#1c4e63;
    --ink:#0f232b;
    --ink-soft:#3c5964;
    --sun:#daafe7;
    --line: rgba(15,35,43,0.14);
    --shadow: 0 18px 40px -18px rgba(15,60,75,0.35);
    --card-bg:#ffffff;
    --accent-strong:#1c4e63;
    --btn-hover-text:#1c2b30;
    --wave-back:#8fcdd4;
    --wave-front:#bfe3e8;
    --placeholder-bg: rgba(255,255,255,0.35);
    --shot-border: rgba(28,78,99,0.35);
    --backdrop: rgba(15,35,43,0.55);
    color-scheme: light;
  }
  :root[data-theme="dark"]{
    --foam:#122831;
    --sea-pale:#0a1c23;
    --sea:#2c6a79;
    --sea-deep:#bfe9ee;
    --ink:#eaf6f8;
    --ink-soft:#9dc6ce;
    --sun:#daafe7;
    --line: rgba(234,246,248,0.14);
    --shadow: 0 18px 40px -18px rgba(0,0,0,0.6);
    --card-bg:#0e2029;
    --accent-strong:#2f93a8;
    --btn-hover-text:#1c2b30;
    --wave-back:#123642;
    --wave-front:#0a1c23;
    --placeholder-bg: rgba(255,255,255,0.06);
    --shot-border: rgba(191,227,232,0.35);
    --backdrop: rgba(4,12,16,0.7);
    color-scheme: dark;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--sea-pale);
    color:var(--ink);
    font-family:'Manrope',sans-serif;
    overflow-x:hidden;
    transition:background-color .35s ease, color .35s ease;
  }
  h1,h2,.display{
    font-family:'Fraunces',serif;
    font-weight:450;
    letter-spacing:-0.01em;
    margin:0;
  }
  a{color:inherit;}
  button{font-family:inherit;}

  /* Çoklu Dil Desteği Gösterim Kontrolleri */
  [data-lang-en] { display: none; }
  html[data-lang="en"] [data-lang-tr] { display: none; }
  html[data-lang="en"] [data-lang-en] { display: inline; }
  html[data-lang="en"] p[data-lang-en], 
  html[data-lang="en"] h3[data-lang-en], 
  html[data-lang="en"] li[data-lang-en] { display: block; }

  /* ---------- NAV ---------- */
  .nav{
    position:fixed;
    top:0; left:0; right:0;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:22px 5vw;
    z-index:40;
    font-size:0.92rem;
    mix-blend-mode:normal;
  }
  .nav-left, .nav-right{
    display:flex;
    align-items:center;
    gap:16px;
  }
  .nav-right{
    gap:28px;
  }
  .nav a{
    text-decoration:none;
    color:var(--sea-deep);
    opacity:0.75;
    transition:opacity .2s ease;
  }
  .nav a:hover{opacity:1;}
  
  .icon-btn{
    width:36px; height:36px;
    border-radius:50%;
    border:1px solid var(--line);
    background:var(--card-bg);
    color:var(--sea-deep);
    display:flex; align-items:center; justify-content:center;
    cursor:pointer;
    text-decoration:none;
    transition:background-color .3s ease, border-color .3s ease, transform .18s ease;
  }
  .lang-btn {
    width: 36px; height: 36px;
    border-radius: 50%;
    border: 1px solid var(--line);
    background: var(--card-bg);
    color: var(--sea-deep);
    display: flex; align-items: center; justify-content: center;
    cursor: pointer;
    font-size: 0.75rem;
    font-weight: 700;
    transition: background-color .3s ease, border-color .3s ease, transform .18s ease;
  }
  .icon-btn:hover, .lang-btn:hover {transform:translateY(-2px); opacity:1;}
  .icon-btn svg{width:17px; height:17px;}

  /* ---------- HERO ---------- */
  .hero{
    position:relative;
    min-height:100vh;
    background:linear-gradient(to bottom, var(--foam) 0%, var(--foam) 42%, var(--sea-pale) 100%);
    overflow:hidden;
    display:flex;
    align-items:center;
  }
.hero-inner {
    position: relative;
    z-index: 5;
    width: 100%;
    max-width: 1440px; 
    margin: 0 auto;
    padding: 0 3vw 0 5vw;
    display: grid;
    grid-template-columns: 1.35fr 0.85fr;
    align-items: center;
    gap: 30px;
  }

/* windows-chrome card */
  .chrome-card{
    background:var(--card-bg);
    border-radius:22px 22px 18px 18px;
    box-shadow:var(--shadow);
    border:1px solid var(--line);
    max-width:680px; 
    width:100%;
    overflow:hidden;
    animation:rise 900ms cubic-bezier(.2,.8,.2,1) both;
    transition:background-color .35s ease, border-color .35s ease;
  }
  .chrome-bar{
    display:flex;
    align-items:center;
    gap:9px;
    padding:12px 18px;
    background:var(--foam);
    border-bottom:1px solid var(--line);
  }
  .chrome-dot{
    width:11px;height:11px;border-radius:50%;
    background:var(--sea-pale);
    border:1px solid var(--line);
  }
  .chrome-title{
    font-size:0.85rem;
    color:var(--ink-soft);
    letter-spacing:0.01em;
    margin-left:4px;
  }
  .chrome-icons{margin-left:auto;display:flex;gap:7px;opacity:.5;}
  .chrome-icons span{
    width:18px;height:18px;
    display:flex;align-items:center;justify-content:center;
    font-size:11px;
    border:1px solid var(--line);
    border-radius:4px;
  }
  .chrome-body{padding:38px 34px 32px;}
  .chrome-body h1{
    font-size:2.9rem; 
    line-height:1.08;
    color:var(--sea-deep);
  }
  .chrome-body p{
    margin:18px 0 26px;
    font-size:1.05rem;
    line-height:1.7;
    color:var(--ink-soft);
    max-width:44ch;
  }
  .btn{
    display:inline-flex;
    align-items:center;
    gap:11px;
    background:var(--accent-strong);
    color:#fff;
    border:none;
    padding:15px 26px; 
    border-radius:12px;
    font-size:1rem;
    font-weight:600;
    cursor:pointer;
    transition:transform .18s ease, background .18s ease;
    text-decoration: none;
  }
  .btn:hover{background:var(--sun); color:var(--btn-hover-text); transform:translateY(-2px);}
  .btn svg{width:18px;height:18px;flex-shrink:0;}

  /* ---------- 3D KARAKTER ALANI ---------- */
  .char-interaction-wrap {
    position: relative;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    animation: rise 900ms cubic-bezier(.2,.8,.2,1) 120ms both;
  }

  .char-scene {
    position: relative;
    width: 100%;
    height: 520px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
  }

  /* 3D Model Konteyneri */
  .char-slot {
    width: 480px;
    height: 100%;
    margin-right: -30px;
  }

  model-viewer {
    width: 100%;
    height: 100%;
    outline: none;
    --poster-color: transparent;
  }

  .model-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 14px;
    margin-right: 20px;
    padding: 6px 14px;
    background: var(--placeholder-bg);
    border: 1px solid var(--line);
    border-radius: 20px;
    font-size: 0.75rem;
    color: var(--ink-soft);
    opacity: 0.8;
    backdrop-filter: blur(4px);
    transition: opacity 0.2s ease, transform 0.2s ease;
  }

  .model-badge:hover {
    opacity: 1;
    transform: translateY(-1px);
  }

  .model-badge svg {
    width: 14px;
    height: 14px;
    color: var(--sea);
    flex-shrink: 0;
  }

  @keyframes rise{
    from{opacity:0; transform:translateY(22px);}
    to{opacity:1; transform:translateY(0);}
  }

  /* ---------- WAVES ---------- */
  .wave-wrap{
    position:absolute;
    left:0; right:0; bottom:0;
    height:52vh;
    min-height:340px;
    z-index:1;
    overflow:hidden;
  }
  .wave-wrap svg{
    position:absolute;
    bottom:0;
    left:0;
    width:200%;
    height:100%;
  }
  .wave-back{
    animation:drift 22s linear infinite;
    opacity:0.55;
  }
  .wave-front{
    animation:drift 14s linear infinite reverse;
  }
  @keyframes drift{
    from{transform:translateX(0);}
    to{transform:translateX(-50%);}
  }

  /* ---------- MAIL POPUP ---------- */
  .mail-window{
    position:fixed;
    top:22%;
    left:50%;
    width:min(360px, 86vw);
    background:var(--card-bg);
    border-radius:16px 16px 12px 12px;
    box-shadow:0 30px 60px -20px rgba(10,40,55,0.45);
    border:1px solid var(--line);
    z-index:100;
    display:none;
    transform:translateX(-50%);
    transition:background-color .35s ease, border-color .35s ease;
  }
  .mail-window.open{display:block;}
  .mail-bar{
    display:flex;
    align-items:center;
    gap:8px;
    padding:10px 12px;
    background:var(--foam);
    border-bottom:1px solid var(--line);
    border-radius:16px 16px 0 0;
    cursor:grab;
    user-select:none;
  }
  .mail-bar:active{cursor:grabbing;}
  .mail-title{font-size:0.8rem; color:var(--ink-soft);}
  .mail-close{
    margin-left:auto;
    width:18px;height:18px;
    border:1px solid var(--line);
    border-radius:4px;
    display:flex;align-items:center;justify-content:center;
    font-size:11px;
    cursor:pointer;
    background:none;
    color:var(--ink-soft);
  }
  .mail-body{padding:20px;}
  .mail-body label{
    display:block;
    font-size:0.72rem;
    color:var(--ink-soft);
    margin:12px 0 5px;
  }
  .mail-body label:first-child{margin-top:0;}
  .mail-body input, .mail-body textarea{
    width:100%;
    border:1px solid var(--line);
    border-radius:8px;
    padding:9px 11px;
    font-family:inherit;
    font-size:0.88rem;
    resize:vertical;
    background:var(--foam);
  }
  .mail-body textarea{min-height:80px;}
  .mail-body .btn{width:100%; justify-content:center; margin-top:16px;}

  /* ---------- SECTIONS ---------- */
  section.page{
    position:relative;
    z-index:2;
    max-width:1180px;
    margin:0 auto;
    padding:120px 5vw 40px;
  }
  .section-head{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    margin-bottom:44px;
  }
  .section-head h2{font-size:2rem; color:var(--sea-deep);}
  .section-head .count{font-size:0.85rem; color:var(--ink-soft); opacity:0.7;}

  /* projects */
  .projects-viewport{
    width:100vw;
    max-width:100vw;
    margin-left:calc(50% - 50vw);
    margin-right:calc(50% - 50vw);
    padding:0 40px;
    overflow-x:auto;
    overflow-y:hidden;
    position:relative;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
            mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
    cursor:grab;
    scrollbar-width:none;           /* Firefox */
    -ms-overflow-style:none;        /* IE/Edge */
  }
  .projects-viewport::-webkit-scrollbar{ display:none; } /* Chrome/Safari */
  .projects-viewport.is-dragging{ cursor:grabbing; scroll-behavior:auto; }

  .projects-grid{
    display:flex;
    gap:26px;
    width:max-content;
    margin:0 auto;
  }

  @media (max-width: 640px){
    .projects-viewport{ padding:0 20px; }
  }

  .project-card{
    flex:0 0 320px;
    width:320px;
    background:var(--card-bg);
    border:1px solid var(--line);
    border-radius:16px 16px 12px 12px;
    overflow:hidden;
    cursor:pointer;
    user-select:none;
    -webkit-user-drag:none;
    transition:box-shadow .25s ease, background-color .35s ease, border-color .35s ease, transform .25s ease;
  }
  .project-card:hover{box-shadow:var(--shadow); transform:translateY(-5px);}

  .project-top{
    display:flex; align-items:center; gap:8px;
    padding:9px 12px;
    background:var(--foam);
    border-bottom:1px solid var(--line);
  }
  .project-media{
    height:150px;
    background:linear-gradient(135deg, var(--sea-pale), var(--sea));
    position:relative;
    overflow:hidden;
    pointer-events:none;
  }
  .project-body{padding:20px 20px 22px; position:relative; overflow:hidden;}
  .project-body h3{
    font-family:'Fraunces',serif;
    font-size:1.18rem;
    color:var(--sea-deep);
    margin:0 0 8px;
    font-weight:500;
  }
  .project-body p{
    font-size:0.87rem;
    line-height:1.55;
    color:var(--ink-soft);
    margin:0 0 16px;
    min-height:70px;
  }
  .tag-row{display:flex; flex-wrap:wrap; gap:7px;}
  .tag{
    font-size:0.72rem;
    padding:4px 9px;
    border-radius:20px;
    background:var(--foam);
    border:1px solid var(--line);
    color:var(--sea-deep);
  }
  .view-more{
    display:flex; align-items:center; gap:6px;
    margin-top:16px;
    font-size:0.78rem;
    font-weight:600;
    color:var(--sea-deep);
    opacity:0.7;
    transition:opacity .2s ease, gap .2s ease;
  }
  .project-card:hover .view-more{opacity:1; gap:10px;}
  .view-more svg{width:13px; height:13px;}

  @media (max-width: 640px){
    .project-card{ flex-basis:260px; width:260px; }
  }

  /* hover feature overlay */
  .feature-overlay{
    position:absolute;
    inset:0;
    background:var(--card-bg);
    padding:20px 20px 22px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    transform:translateY(102%);
    transition:transform .5s cubic-bezier(.16,1,.3,1);
    z-index:2;
  }
  .project-card:hover .feature-overlay{transform:translateY(0);}
  .feature-overlay h4{
    font-family:'Fraunces',serif;
    font-size:1.02rem;
    font-weight:500;
    color:var(--sea-deep);
    margin:0 0 12px;
  }
  .feature-overlay ul{margin:0; padding:0; list-style:none;}
  .feature-overlay li{
    position:relative;
    padding-left:18px;
    margin-bottom:8px;
    font-size:0.85rem;
    line-height:1.5;
    color:var(--ink-soft);
  }
  .feature-overlay li::before{
    content:"";
    position:absolute;
    left:0; top:7px;
    width:6px; height:6px;
    border-radius:50%;
    background:var(--sun);
  }

  /* experience & education */
  .exp-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0;
    border-top:1px solid var(--line);
  }
  .exp-item{
    padding:28px 26px;
    border-bottom:1px solid var(--line);
    cursor:default;
  }
  .exp-item:nth-child(odd){border-right:1px solid var(--line);}
  .exp-head{display:flex; justify-content:space-between; align-items:baseline; gap: 16px; margin-bottom:12px;}
  .exp-head h3{font-family:'Fraunces',serif; font-size:1.1rem; color:var(--sea-deep); font-weight:500;}
  .exp-head time{font-size:0.78rem; color:var(--ink-soft); white-space: nowrap;}
  .exp-item ul{margin:0; padding-left:18px; color:var(--ink-soft); font-size:0.88rem; line-height:1.6;}
  .exp-item li{margin-bottom:5px;}
  .exp-item .edu-sub{font-size:0.88rem; color:var(--ink-soft); margin:0; line-height:1.6;}

  /* Deneyim Hover Takip Baloncukları */
  .skill-bubble{
    position:fixed;
    left:0; top:0;
    pointer-events:none;
    z-index:70;
    padding:12px 24px;
    border-radius:999px;
    font-family:'Manrope',sans-serif;
    font-size:0.95rem;
    font-weight:700;
    letter-spacing:0.01em;
    color:var(--ink);
    background:var(--sun);
    border:2px solid var(--card-bg);
    box-shadow:0 14px 30px -10px rgba(15,35,43,0.5);
    white-space:nowrap;
    opacity:0;
    transform:translate(-50%,-50%) scale(0.6);
    transition:opacity .28s ease;
    will-change:transform, opacity, left, top;
  }
  .skill-bubble.is-visible{opacity:1;}

  /* links */
  .links-row{display:flex; gap:16px; flex-wrap:wrap;}
  .link-pill{
    display:inline-flex; align-items:center; gap:10px;
    padding:13px 22px;
    border-radius:10px;
    border:1px solid var(--line);
    background:var(--card-bg);
    text-decoration:none;
    color:var(--sea-deep);
    font-weight:600;
    font-size:0.9rem;
    transition:transform .18s ease, box-shadow .18s ease, background-color .35s ease, border-color .35s ease;
  }
  .link-pill:hover{transform:translateY(-2px); box-shadow:var(--shadow);}
  .link-pill svg{width:18px; height:18px;}

  footer{
    text-align:center;
    padding:50px 5vw 40px;
    font-size:0.78rem;
    color:var(--ink-soft);
    opacity:0.7;
  }

  /* ---------- PROJECT MODAL ---------- */
  .modal-backdrop{
    position:fixed;
    inset:0;
    background:var(--backdrop);
    backdrop-filter:blur(3px);
    display:none;
    align-items:center;
    justify-content:center;
    z-index:200;
  }
  .modal-backdrop.open{display:flex;}
  
  .modal-panel{
    position:absolute;
    background:var(--card-bg);
    width:min(760px, 90vw);
    max-height:85vh;
    overflow-y:auto;
    border-radius:16px 16px 14px 14px;
    box-shadow:0 40px 80px -20px rgba(10,40,55,0.5);
    border:1px solid var(--line);
    animation:rise 420ms cubic-bezier(.2,.8,.2,1) both;
    transition:background-color .35s ease, border-color .35s ease;
  }
  
  .modal-drag-bar{
    display:flex;
    align-items:center;
    gap:8px;
    padding:10px 12px;
    background:var(--foam);
    border-bottom:1px solid var(--line);
    border-radius:16px 16px 0 0;
    cursor:grab;
    user-select:none;
  }
  .modal-drag-bar:active{cursor:grabbing;}

  .modal-close{
    margin-left:auto;
    width:18px;height:18px;
    border:1px solid var(--line);
    border-radius:4px;
    display:flex;align-items:center;justify-content:center;
    font-size:11px;
    cursor:pointer;
    background:none;
    color:var(--ink-soft);
  }
  .modal-body{padding:32px 34px 36px;}
  .modal-body h3{
    font-family:'Fraunces',serif;
    font-size:1.7rem;
    font-weight:500;
    color:var(--sea-deep);
    margin:0 0 6px;
  }
  .modal-body .modal-desc{
    font-size:0.94rem;
    line-height:1.7;
    color:var(--ink-soft);
    margin:0 0 22px;
    max-width:60ch;
  }
  .shot-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:12px;
    margin-bottom:24px;
  }
  .shot-grid .shot{
    aspect-ratio:16/10;
    border-radius:10px;
    background:linear-gradient(135deg, var(--sea-pale), var(--sea));
    border:1px dashed var(--shot-border);
    position:relative;
    overflow:hidden;
  }
  .shot::after{
    position:absolute; inset:0;
    display:flex; align-items:center; justify-content:center;
    font-size:0.68rem;
    color:var(--sea-deep);
    opacity:0.6;
    text-align:center;
    padding:0 6px;
  }

.modal-actions{display:flex; gap:12px; flex-wrap:wrap; margin-top:4px;}
  .modal-actions .btn.ghost{
    text-decoration: none;
    background:var(--card-bg);
    color:var(--sea-deep);
    border:1px solid var(--line);
  }
  .modal-actions .btn.ghost:hover{
    background:var(--foam);
    color:var(--sea-deep);
    border-color:var(--sea);
    transform:translateY(-2px);
  }

@media (max-width: 880px){
    .nav{padding:18px 5vw;}
    .hero-inner{grid-template-columns:1fr; text-align:left; gap:24px;}
    .char-interaction-wrap{order:-1; min-height:320px;}
    .char-scene{height:280px; justify-content:center;}
    .char-slot{width:220px; margin-right:0;}
    .model-badge{margin-right:0; justify-content:center;}
    
    .chrome-card{max-width:100%; margin:0 auto;}
    .chrome-body{padding:26px 22px 24px;}
    .chrome-body h1{font-size:2.2rem;}
    .hero-desc{font-size:0.95rem; line-height:1.6;}
    .btn{width:100%; justify-content:center;}

    .projects-grid{grid-template-columns:1fr;}
    .exp-grid{grid-template-columns:1fr;}
    .exp-item:nth-child(odd){border-right:none;}
  }
  @media (prefers-reduced-motion: reduce){
    .wave-back, .wave-front{animation:none;}
    .chrome-card, .char-interaction-wrap{animation:none;}
  }