/* An editorial collection, with native expandable project presentations. */
.portfolio-page { background: var(--navy-900); }
.portfolio-hero { overflow: clip; padding: 118px 0 48px; background: radial-gradient(ellipse at 85% 50%,rgba(124,58,237,.14),transparent 55%),radial-gradient(ellipse at 10% 100%,rgba(6,182,212,.06),transparent 50%); }
.portfolio-hero-grid { display: grid; gap: 34px; align-items: center; }
.portfolio-hero-copy { position: relative; z-index: 2; }
.portfolio-hero h1 { font: 600 clamp(3.8rem,16vw,6rem)/.98 var(--font-heading); letter-spacing: -.065em; }
.portfolio-page .gradient-text { background-image: linear-gradient(110deg,#bda7fb,#7c3aed 26%,#3b82f6 60%,#67e8f9); }
.portfolio-hero-copy > p { max-width: 430px; color: var(--gray-400); font-size: 1rem; line-height: 1.8; margin-top: 24px; }
.portfolio-explore { display: inline-flex; align-items: center; gap: 26px; min-height: 52px; color: white; font-size: .875rem; margin-top: 22px; }
.portfolio-explore > span { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(34,211,238,.4); border-radius: 50%; color: var(--cyan-300); }
.portfolio-hero-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 30px; margin-top: 28px; padding-top: 22px; border-top: var(--border-glass); color: var(--gray-400); font-size: .6875rem; }
.portfolio-hero-meta > span { display: flex; align-items: center; gap: 8px; }
.portfolio-hero-meta b { font: 500 1.5rem var(--font-heading); color: white; }
.portfolio-hero-meta i { width: 5px; height: 5px; border-radius: 50%; background: var(--cyan-400); box-shadow: 0 0 12px #22d3ee88; }
.portfolio-art { position: relative; min-width: 0; height: 340px; perspective: 1200px; transform-style: preserve-3d; }
.portfolio-art-orbit { position: absolute; inset: 12% -8%; border: 1px solid rgba(139,92,246,.65); border-radius: 50%; transform: rotate(-34deg) rotateY(25deg); box-shadow: 0 0 30px rgba(124,58,237,.1),inset 0 0 30px rgba(6,182,212,.09); }
.portfolio-art-screen { display: block; position: absolute; inset: 18px 35px 26px 6px; overflow: hidden; border: 1px solid #3e5275; border-radius: 16px; background: #101b32; transform: rotateY(-15deg) rotateZ(-8deg); box-shadow: 4px 7px 0 #26344e,0 25px 65px #0006; transition: transform .4s; }
.portfolio-art-screen > span { display: flex; align-items: center; gap: 4px; height: 29px; padding: 8px 12px; background: #101529; }
.portfolio-art-screen > span i { width: 4px; height: 4px; background: var(--cyan-500); border-radius: 50%; }
.portfolio-art-screen > span i:nth-child(2) { background: #7c3aed; }
.portfolio-art-screen small { font-size: .4375rem; letter-spacing: .07em; }
.portfolio-art-screen > span small { margin-left: auto; color: var(--gray-500); }
.portfolio-art-screen img { width: 100%; height: calc(100% - 29px); object-fit: cover; }
.portfolio-art-screen > div { position: absolute; inset: auto 0 0; padding: 46px 22px 22px; background: linear-gradient(transparent,#050816f2); }
.portfolio-art-screen > div small { color: var(--cyan-300); }
.portfolio-art-screen strong { display: block; font: 500 1.8rem/1.03 var(--font-heading); letter-spacing: -.04em; margin-top: 10px; color: white; }
.portfolio-art-phone { position: absolute; width: 30%; height: 61%; right: 0; bottom: 5px; border: 5px solid #1d2940; outline: 1px solid #536982; border-radius: 20px; overflow: hidden; transform: translateZ(65px) rotate(12deg); background: #101529; box-shadow: 4px 5px 0 #253c53,0 25px 50px #0008; transition: transform .4s; }
.portfolio-art-phone img { width: 100%; height: 100%; object-fit: cover; }
.portfolio-art-phone > span { position: absolute; inset: auto 0 0; font-size: .3125rem; text-align: center; color: #b8e9ef; background: linear-gradient(transparent,#050816); padding: 28px 4px 13px; }
.portfolio-art-label { position: absolute; left: 18px; bottom: 0; padding: 15px 18px; display: flex; align-items: center; gap: 10px; background: linear-gradient(140deg,#282448,#0f1d32); border: 1px solid #466280; border-radius: 12px; color: white; font-size: .625rem; transform: translateZ(85px) rotate(-5deg); }
.portfolio-art-label > span { color: var(--cyan-300); font-size: 1.5rem; }
.portfolio-collection { padding-top: 52px; }
.collection-heading { display: grid; gap: 22px; margin-bottom: 36px; }
.collection-heading h2 { font: 500 clamp(2.4rem,10vw,4rem)/1.03 var(--font-heading); letter-spacing: -.045em; }
.collection-heading > p { color: var(--gray-400); font-size: .9375rem; line-height: 1.8; max-width: 410px; }
.collection-tools { display: grid; gap: 22px; border-top: var(--border-glass); padding-top: 24px; }
.portfolio-page .portfolio-filters { gap: 6px; margin: 0; align-items: center; }
.portfolio-page .portfolio-filter-btn { display: inline-flex; align-items: center; gap: 9px; font-size: .75rem; padding: 9px 13px; border-radius: 999px; }
.portfolio-filter-btn > span { font-size: .5625rem; opacity: .65; }
.portfolio-search label { display: block; font-size: .6875rem; color: var(--gray-400); margin-bottom: 9px; }
.portfolio-search > div { display: flex; gap: 12px; align-items: center; border-bottom: 1px solid #334155; color: var(--cyan-400); }
.portfolio-search input { width: 100%; min-width: 0; min-height: 48px; font-size: 16px; color: white; background: transparent; border: 0; padding: 10px 4px; }
.portfolio-search input::placeholder { color: var(--gray-500); }
.portfolio-page .portfolio-results { margin: 22px 0; font-size: .6875rem; letter-spacing: .03em; }
.project-grid { grid-template-columns: minmax(0,1fr); gap: 26px; align-items: start; }
.portfolio-page .project-card { display: flex; flex-direction: column; min-width: 0; border: 1px solid rgba(148,163,184,.18); border-radius: 21px; background: linear-gradient(140deg,#0e152c,#080d20); overflow: hidden; box-shadow: 0 6px 0 rgba(15,29,54,.6); }
.portfolio-page .project-card:hover { transform: none; border-color: rgba(103,232,249,.4); }
.project-visual { position: relative; overflow: hidden; height: 290px; background: radial-gradient(ellipse at center,#242450,#081027); }
.project-visual > img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.portfolio-page .project-card:hover .project-visual > img { transform: none; }
.project-index, .project-kind { position: absolute; z-index: 2; left: 16px; font-size: .5625rem; letter-spacing: .07em; color: #d5e6f8; padding: 7px 10px; border: 1px solid rgba(148,194,223,.25); background: rgba(5,8,22,.88); border-radius: 7px; }
.project-index { top: 16px; }
.project-kind { bottom: 16px; color: var(--cyan-300); }
.project-body { padding: 24px 22px 12px; }
.project-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 18px; }
.project-tags > span { border: 1px solid rgba(148,163,184,.18); border-radius: 999px; color: var(--gray-400); font-size: .625rem; padding: 5px 9px; }
.project-body h3 { font: 500 2rem/1.1 var(--font-heading); letter-spacing: -.04em; }
.project-line { color: var(--gray-200); font-size: .9375rem; margin-top: 9px; }
.project-intro { color: var(--gray-400); font-size: .875rem; line-height: 1.8; margin-top: 16px; }
.case-study { margin-top: auto; min-width: 0; }
.case-study > summary { list-style: none; min-height: 64px; display: flex; justify-content: space-between; align-items: center; margin: 0 22px; padding: 15px 0; gap: 16px; color: var(--cyan-300); font-size: .8125rem; cursor: pointer; }
.case-study > summary::-webkit-details-marker { display: none; }
.case-toggle { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; border: 1px solid rgba(34,211,238,.3); font-size: 1.15rem; flex-shrink: 0; transition: transform .25s; }
.case-study[open] > summary { border-bottom: 1px solid rgba(34,211,238,.2); }
.case-study[open] .case-toggle { transform: rotate(45deg); }
.case-content { padding: 28px 22px 24px; }
.case-story { display: grid; gap: 26px; }
.case-eyebrow { display: block; font-size: .5625rem; letter-spacing: .12em; color: var(--cyan-400); margin-bottom: 12px; }
.case-story h4 { font: 500 1.25rem var(--font-heading); margin-bottom: 10px; }
.case-story p, .case-features p { font-size: .875rem; color: var(--gray-400); line-height: 1.8; }
.case-features { list-style: none; display: grid; gap: 22px; margin: 30px 0; padding: 26px 0; border-top: var(--border-glass); border-bottom: var(--border-glass); }
.case-features li { display: flex; gap: 14px; }
.case-features li > span { color: var(--cyan-500); font-size: .625rem; padding-top: 4px; }
.case-features h4 { font-size: .9375rem; font-weight: 500; margin-bottom: 6px; }
.case-features p { font-size: .8125rem; }
.case-scope > div { display: flex; flex-wrap: wrap; gap: 7px; }
.case-scope > div > span { padding: 8px 11px; border-radius: 8px; background: rgba(124,58,237,.09); border: 1px solid rgba(139,92,246,.18); color: #cbbfec; font-size: .6875rem; }
.case-cta { display: flex; justify-content: space-between; align-items: center; min-height: 52px; margin-top: 22px; font-size: .8125rem; color: white; }
.case-cta > span { font-size: 1.25rem; color: var(--cyan-300); }
.portfolio-empty { text-align: center; padding: 65px 24px; border: var(--border-glass); border-radius: 20px; }
.portfolio-empty > span { font-size: 3rem; color: var(--cyan-400); }
.portfolio-empty h3 { font-size: 1.5rem; margin: 14px 0; }
.portfolio-empty p { color: var(--gray-400); font-size: .875rem; line-height: 1.8; max-width: 450px; margin: 0 auto 24px; }
.portfolio-craft { background: radial-gradient(ellipse at top right,rgba(124,58,237,.1),transparent 60%); border-top: var(--border-glass); }
.craft-grid { display: grid; gap: 20px; }
.craft-grid article { padding: 28px; border: var(--border-glass); border-radius: 20px; background: rgba(10,14,39,.55); }
.craft-grid article > span { color: var(--cyan-400); font-size: .5625rem; letter-spacing: .08em; }
.craft-grid h3 { font: 500 1.55rem/1.1 var(--font-heading); margin: 28px 0 14px; letter-spacing: -.02em; }
.craft-grid p { font-size: .875rem; color: var(--gray-400); line-height: 1.8; }
.portfolio-closing { text-align: center; }
.portfolio-closing .section-label { justify-content: center; }
.portfolio-closing h2 { font: 500 clamp(2.5rem,10vw,4.75rem)/1.05 var(--font-heading); letter-spacing: -.05em; }
.portfolio-closing p { max-width: 420px; margin: 24px auto 30px; font-size: .9375rem; color: var(--gray-400); line-height: 1.8; }
.portfolio-closing .btn { gap: 20px; box-shadow: 0 10px 50px rgba(124,58,237,.2); }
/* Code-native concept artwork keeps the collection light. */
.concept-workspace { position: absolute; width: 94%; left: 10%; top: 12%; padding: 14px; background: linear-gradient(140deg,#243052,#081023); border: 1px solid #596785; border-radius: 13px; transform: perspective(700px) rotateY(-12deg) rotateZ(-6deg); box-shadow: 4px 6px 0 #202d4a; }
.concept-toolbar { display: flex; align-items: center; gap: 14px; border-bottom: var(--border-glass); padding-bottom: 10px; }
.concept-toolbar b { color: white; font: 500 16px var(--font-heading); }
.concept-toolbar b > span { color: var(--cyan-300); }
.concept-toolbar > span { font-size: 4px; letter-spacing: .1em; color: var(--gray-500); }
.concept-toolbar i { margin-left: auto; border: var(--border-glass); font-size: 5px; padding: 5px; border-radius: 50%; color: #bfcce2; }
.concept-welcome { padding: 16px 0; }
.concept-welcome small { font-size: 4px; letter-spacing: .1em; color: var(--cyan-400); }
.concept-welcome strong { display: block; margin-top: 8px; font: 500 29px/1 var(--font-heading); letter-spacing: -.04em; }
.concept-board { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }
.concept-board > div { padding: 8px; background: #050a1799; border-radius: 6px; }
.concept-board > div > span { display: flex; justify-content: space-between; gap: 4px; font-size: 5px; color: var(--gray-400); margin-bottom: 10px; }
.concept-board > div > span b { color: var(--cyan-300); }
.concept-board i { display: block; font-style: normal; font-size: 5px; padding: 10px 7px; margin-top: 6px; color: #d1ddee; border: var(--border-glass); border-radius: 4px; background: #142039; }
.concept-board small { display: block; color: #91a3ba; margin-top: 12px; font-size: 3px; }
.concept-board .concept-highlight { background: linear-gradient(135deg,#472889,#162d4b); border-color: #7653b6; }
.concept-social { position: absolute; inset: 0; perspective: 800px; }
.social-editorial { position: absolute; width: 55%; height: 79%; top: 7%; left: 8%; border: 1px solid #54708c; border-radius: 12px; overflow: hidden; padding: 22px 16px; background: linear-gradient(140deg,#243963,#102837); transform: rotateY(13deg) rotateZ(-10deg); box-shadow: 0 15px 40px #0005; }
.social-editorial small { display: block; font-size: 4px; letter-spacing: .12em; color: #b6d8e5; }
.social-editorial strong { display: block; font: 600 clamp(2.4rem,9vw,3.5rem)/.9 var(--font-heading); letter-spacing: -.06em; margin-top: 32px; color: #d7f4fb; }
.social-editorial strong span { color: var(--cyan-300); }
.social-editorial > span { position: absolute; bottom: 16px; font-size: 4px; letter-spacing: .07em; color: #a6d6dc; }
.social-editorial-two { left: auto; right: 4%; top: 18%; background: linear-gradient(140deg,#6334b4,#202859 70%,#124c5b); transform: translateZ(40px) rotateY(-12deg) rotateZ(10deg); }
.social-editorial-two strong { font-size: 43px; }
.social-editorial-two strong span { display: block; color: #b8eefe; font-size: 45px; margin-top: 6px; }
.social-concept-note { position: absolute; left: 5%; bottom: 14%; padding: 10px 14px; border: 1px solid #71768b; background: #16213b; border-radius: 8px; font-size: 7px; color: white; transform: translateZ(80px) rotate(-5deg); }
.social-concept-note > span { color: var(--cyan-300); padding-right: 7px; }
@media (min-width: 600px) {
  .portfolio-art { height: 440px; max-width: 540px; width: 100%; margin: 0 auto; }
  .portfolio-art-screen strong { font-size: 2.5rem; }
  .project-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; }
  .project-featured { grid-column: 1 / -1; }
  .portfolio-page .project-featured { display: grid; grid-template-columns: 1.15fr 1fr; }
  .project-featured .project-visual { height: auto; min-height: 370px; }
  .project-featured .project-body { align-self: center; padding: 30px; }
  .project-featured .case-study { grid-column: 1 / -1; }
  .project-featured .case-story { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px; }
  .project-featured .case-features { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .project-featured .case-content { padding: 32px; }
  .project-visual { height: 310px; }
  .collection-tools { grid-template-columns: 1fr 220px; gap: 25px; align-items: end; }
  .portfolio-page .portfolio-filters { align-self: center; }
  .portfolio-search label { font-size: .625rem; }
  .collection-heading { grid-template-columns: 1.1fr 1fr; gap: 36px; align-items: end; margin-bottom: 44px; }
  .collection-heading > p { font-size: .875rem; }
  .craft-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
  .craft-grid article { padding: 24px; }
}
@media (min-width: 960px) {
  .portfolio-hero { padding: 162px 0 100px; }
  .portfolio-hero-grid { grid-template-columns: .9fr 1.1fr; gap: 50px; }
  .portfolio-hero h1 { font-size: clamp(4.25rem,6.7vw,6rem); }
  .portfolio-hero-copy > p { font-size: 1.05rem; }
  .portfolio-art { height: 560px; }
  .portfolio-art-screen { inset: 30px 38px 64px -15px; border-radius: 20px; }
  .portfolio-art-screen strong { font-size: 3rem; }
  .portfolio-art-phone { height: 62%; width: 34%; bottom: 30px; right: -6px; border-width: 8px; border-radius: 26px; }
  .portfolio-art-label { left: -20px; bottom: 20px; padding: 18px 22px; font-size: .8125rem; }
  .project-grid { gap: 38px; }
  .project-featured .project-visual { min-height: 455px; }
  .project-visual { height: 400px; }
  .project-body { padding: 30px 30px 16px; }
  .project-body h3 { font-size: 2.6rem; }
  .project-intro { font-size: .9375rem; }
  .case-study > summary { margin: 0 30px; min-height: 72px; }
  .case-content { padding: 32px 30px; }
  .concept-workspace { padding: 22px; }
  .concept-toolbar b { font-size: 24px; }
  .concept-toolbar > span { font-size: 6px; }
  .concept-welcome { padding: 25px 0; }
  .concept-welcome strong { font-size: 46px; }
  .concept-welcome small { font-size: 6px; }
  .concept-board i { padding: 14px 9px; font-size: 7px; }
  .concept-board > div > span { font-size: 7px; }
  .concept-board small { font-size: 4px; }
  .social-editorial { padding: 28px; }
  .social-editorial strong { font-size: 68px; }
  .social-editorial small, .social-editorial > span { font-size: 6px; }
  .social-editorial-two strong { font-size: 64px; }
  .social-concept-note { font-size: 11px; padding: 14px 18px; }
  .craft-grid { gap: 26px; }
  .craft-grid article { padding: 34px; }
  .craft-grid h3 { font-size: 1.9rem; }
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .portfolio-art-screen:hover { transform: rotateY(-9deg) rotateZ(-5deg) translateY(-5px); }
  .portfolio-art-phone:hover { transform: translateZ(85px) rotate(6deg); }
  .portfolio-page .project-card:hover .project-visual > img { transform: scale(1.035); }
}
@media (prefers-reduced-motion: reduce) {
  .portfolio-art-screen, .portfolio-art-phone, .project-visual > img { transition: none; }
}
