#portfolio-ppt{ --page:#f6f4ef; --ink:#171817; --muted: #6f706c; --line:var(--portfolio-line); --gap:clamp(7px,1vw,13px); --side:var(--portfolio-gutter); }
    #portfolio-ppt{ scroll-behavior:smooth; }
    #portfolio-ppt{ min-width:320px; margin:0; color:var(--ink); background:var(--page); font-family:var(--font-ui); letter-spacing:0; }
    #portfolio-ppt button{ font:inherit; }
    #portfolio-ppt img{ display:block; max-width:100%; }
    #portfolio-ppt a{ color:inherit; text-decoration:none; }
    #portfolio-ppt .mono{ font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace; letter-spacing:.08em; }
    #portfolio-ppt .page{ width:100%; min-height:100vh; padding:0 0 58px; }
    #portfolio-ppt .intro{ width:min(var(--portfolio-content-max),calc(100% - (var(--side) * 2))); margin:0 auto; padding:var(--portfolio-space-section) 0 var(--portfolio-space-block); text-align:left; }
    #portfolio-ppt .intro h1{ margin:0; }
    #portfolio-ppt .project{ width:min(var(--portfolio-content-max),calc(100% - (var(--side) * 2))); margin:0 auto; padding:0 0 clamp(8px,1.5vw,18px); }
    #portfolio-ppt .project + .project{ padding-top:clamp(8px,1.5vw,18px); }
    #portfolio-ppt .project-head{ display:flex; align-items:end; justify-content:space-between; gap:18px; margin-bottom:18px; }
    #portfolio-ppt .project-title{ display:flex; align-items:baseline; gap:14px; margin:0; font-size:clamp(19px,2.2vw,28px); line-height:1.1; letter-spacing:-.04em; }
    #portfolio-ppt .project-title .number{ color:var(--muted); font-size:11px; font-weight:500; letter-spacing:.08em; }
    #portfolio-ppt .project-meta{ color:var(--muted); font-size:10px; text-align:right; }
    #portfolio-ppt .project-meta strong{ display:block; margin-bottom:4px; color:var(--ink); font-size:13px; font-weight: 700; }
    #portfolio-ppt .viewport{ position:relative; min-width:0; overflow:hidden; padding:5px 0 2px; touch-action:pan-y; }
    #portfolio-ppt .viewport::before, #portfolio-ppt .viewport::after{ position:absolute; top:0; bottom:0; z-index:3; width:clamp(22px,7vw,100px); content:""; pointer-events:none; }
    #portfolio-ppt .viewport::before{ left:0; background:linear-gradient(90deg,var(--page),rgba(246,244,239,0)); }
    #portfolio-ppt .viewport::after{ right:0; background:linear-gradient(270deg,var(--page),rgba(246,244,239,0)); }
    #portfolio-ppt .track{ display:flex; width:max-content; will-change:transform; }
    #portfolio-ppt .track.paused{ animation-play-state:paused; }
    #portfolio-ppt .reel-set{ display:flex; gap:var(--gap); padding-right:var(--gap); }
    #portfolio-ppt .reel-set[aria-hidden=true]{ pointer-events:auto; }
    #portfolio-ppt .project.ltr .track{ animation:ppt-glide-right 72s linear infinite; }
    #portfolio-ppt .project.rtl .track{ animation:ppt-glide-left 72s linear infinite; }
    #portfolio-ppt .viewport:hover .track, #portfolio-ppt .viewport:focus-within .track{ animation-play-state:paused; }
    @keyframes ppt-glide-right { from { transform:translateX(-50%); } to { transform:translateX(0); } }
    @keyframes ppt-glide-left { from { transform:translateX(0); } to { transform:translateX(-50%); } }
    #portfolio-ppt .slide-card{ position:relative; flex:0 0 min(600px,41vw); aspect-ratio:600/338; overflow:hidden; padding:0; border:0; border-radius:6px; background:#fff; box-shadow:0 5px 18px rgba(23,24,23,.08); cursor:zoom-in; }
    #portfolio-ppt .slide-card img{ width:100%; height:100%; object-fit:contain; background:#fff; transition:transform .45s cubic-bezier(.22,.75,.2,1); }
    #portfolio-ppt .slide-card:hover img, #portfolio-ppt .slide-card:focus-visible img{ transform:scale(1.025); }
    #portfolio-ppt .slide-card:focus-visible{ outline:2px solid var(--ink); outline-offset:4px; }
    #portfolio-ppt .slide-index{ position:absolute; right:10px; bottom:9px; z-index:2; padding:4px 6px; color:rgba(255,255,255,.88); background:rgba(23,24,23,.56); font-size:9px; line-height:1; }
    #portfolio-ppt .round-button{ display:grid; width:34px; height:34px; place-items:center; padding:0; border:1px solid var(--line); border-radius:50%; color:var(--ink); background:transparent; cursor:pointer; transition:background-color .18s ease,color .18s ease,transform .18s ease; }
    #portfolio-ppt .round-button:hover{ color:var(--page); background:var(--ink); transform:scale(1.05); }
    #portfolio-ppt .round-button:focus-visible{ outline:2px solid var(--ink); outline-offset:3px; }
    #portfolio-ppt .chevron{ width:8px; height:8px; border-top:1px solid currentColor; border-right:1px solid currentColor; }
    #portfolio-ppt .chevron.left{ margin-left:3px; transform:rotate(-135deg); }
    #portfolio-ppt .chevron.right{ margin-right:3px; transform:rotate(45deg); }
    #portfolio-ppt .pause-icon{ font-size:11px; line-height:1; }
    #portfolio-ppt .footer{ width:min(var(--portfolio-content-max),calc(100% - (var(--side) * 2))); display:flex; align-items:center; justify-content:space-between; gap:20px; margin:18px auto 0; padding-top:18px; border-top:1px solid var(--line); color:var(--muted); font-size:10px; }
    #portfolio-ppt .modal{ position:fixed; z-index:var(--portfolio-modal-layer); inset:0; display:grid; grid-template-columns:minmax(56px,1fr) minmax(0,7fr) minmax(56px,1fr); align-items:center; opacity:0; visibility:hidden; background:rgba(246,244,239,.9); transition:opacity .22s ease,visibility .22s step-end; }
    #portfolio-ppt .modal.open{ opacity:1; visibility:visible; transition:opacity .22s ease,visibility 0ms; }
    #portfolio-ppt .modal-figure{ position:relative; display:grid; max-width:min(1120px,100%); max-height:calc(100dvh - 52px); justify-self:center; overflow:hidden; border-radius:var(--portfolio-radius-modal); background:#fff; box-shadow:var(--portfolio-shadow-modal); transform:translateY(12px) scale(.985); transition:transform .25s cubic-bezier(.22,.75,.2,1); }
    #portfolio-ppt .modal.open .modal-figure{ transform:translateY(0) scale(1); }
    #portfolio-ppt .slide-card:active img{ transform:scale(.99); }
    #portfolio-ppt .round-button:active{ transform:scale(.96); }
    #portfolio-ppt .modal-image{ display:block; width:auto; max-width:100%; height:auto; max-height:calc(100dvh - 52px); object-fit:contain; }
    #portfolio-ppt .modal .round-button{ justify-self:center; }
    #portfolio-ppt .close-button{ position:fixed; z-index:1; top:18px; right:20px; }
    #portfolio-ppt .cross{ position:relative; width:15px; height:15px; }
    #portfolio-ppt .cross::before, #portfolio-ppt .cross::after{ position:absolute; top:7px; left:0; width:15px; height:1px; content:""; background:currentColor; }
    #portfolio-ppt .cross::before{ transform:rotate(45deg); }
    #portfolio-ppt .cross::after{ transform:rotate(-45deg); }
    #portfolio-ppt .modal-caption{ position:absolute; right:0; bottom:0; left:0; display:flex; align-items:end; justify-content:space-between; gap:15px; padding:30px 16px 13px; color:#fff; background:linear-gradient(180deg,transparent,rgba(0,0,0,.62)); pointer-events:none; }
    #portfolio-ppt .modal-caption strong{ font-size:13px; font-weight:500; }
    #portfolio-ppt .modal-caption span{ color:rgba(255,255,255,.72); font-size:10px; }
    @media (max-width:700px){
      #portfolio-ppt .intro{ padding:58px 0 44px; }
      #portfolio-ppt .intro p{ max-width:260px; line-height:1.6; }
      #portfolio-ppt .project-head{ align-items:center; }
      #portfolio-ppt .project-meta{ font-size:9px; }
      #portfolio-ppt .project-meta strong{ font-size:12px; }
      #portfolio-ppt .slide-card{ flex-basis:min(600px,82vw); }
      #portfolio-ppt .modal{ grid-template-columns:45px minmax(0,1fr) 45px; }
      #portfolio-ppt .modal-figure{ max-height:calc(100dvh - 88px); border-radius:var(--portfolio-radius-card); }
      #portfolio-ppt .modal-image{ max-height:calc(100dvh - 88px); }
      #portfolio-ppt .modal .round-button{ width:34px; height:34px; }
      #portfolio-ppt .close-button{ top:12px; right:12px; }
      #portfolio-ppt .footer{ align-items:start; flex-direction:column; gap:7px; }
    }
    @media (prefers-reduced-motion:reduce){ #portfolio-ppt *, #portfolio-ppt *::before, #portfolio-ppt *::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; } }
