/* Portfolio revision — 23 October 2026. Direct copy and responsive project documentation. */
.hero h1{font-size:clamp(43px,5vw,72px);white-space:normal;letter-spacing:-.055em;line-height:1.12}
.hero-description{max-width:450px;font-size:14px;line-height:1.85}
.availability{font-size:10px;letter-spacing:.4px}.availability .status-dot{background:#789269}
.mini-board-bottom{font-family:var(--sans);letter-spacing:0;line-height:1.6}
.mini-board-bottom strong{display:block;font-size:15px;font-weight:600}.mini-board-bottom>span{display:block;font-size:9px;color:#5c6e51}
.art-note{font:500 11px/1.6 var(--sans);letter-spacing:0;transform:none;left:15px;bottom:-28px}
.strip-inner{justify-content:center;min-height:66px;padding-block:18px}
.strip-items{display:flex;align-items:center;justify-content:center;gap:22px;flex-wrap:wrap}
.strip-items>span{font-size:12px;color:#64735c;display:flex;align-items:center;gap:22px}
.strip-items>span+span:before{content:'';width:4px;height:4px;border-radius:50%;background:#9cae8f}
.featured-project{grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);min-height:0;align-items:stretch}
.featured-visual{display:flex;flex-direction:column;justify-content:space-between;gap:28px;height:auto;min-height:0;padding:30px;background:#e0e8d3}
.project-visual-label{width:100%;gap:15px;flex-shrink:0}
.screenshot-frame{display:block;position:relative;width:100%;min-width:0;padding:5px;background:#fafbf7;border:1px solid #c6d1ba;border-radius:6px;box-shadow:0 12px 28px #273d2d12;overflow:hidden;text-align:left}
.screenshot-frame img{display:block;width:100%;height:auto;object-fit:contain;transform:none;max-width:100%;border-radius:2px}
.screenshot-action{display:block;padding:10px 8px 5px;font-size:10px;color:#526b47}
.screenshot-frame:hover{border-color:#7e956d}
.feature-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;padding:0}
.project-brand{font:700 34px/1.2 var(--head);letter-spacing:-1.5px}
.feature-small{display:block;font-size:9px;letter-spacing:.7px;line-height:1.9;text-align:right;margin:0}
.featured-copy{display:flex;flex-direction:column;align-items:start;padding:34px;gap:19px}
.featured-copy h3{font-size:clamp(27px,2.7vw,36px);line-height:1.2;letter-spacing:-1.2px}
.featured-copy .text-link{justify-self:auto;font-size:12px}.achievement-note{font-size:10px;align-self:auto}
.scene-labels[hidden]{display:none}
.scene-loading{gap:12px;padding:65px 35px;cursor:default}
.scene-loading strong{font-size:16px;font-weight:500;color:#edf0e3;letter-spacing:0}
.scene-loading>span:last-child{font-size:12px;line-height:1.7}
.scene-loading .loading-spinner{width:37px;height:37px;border:2px solid #81947455;border-top-color:#e3edcd;border-radius:50%;display:block;margin-bottom:4px;animation:loading-spin .85s linear infinite}
@keyframes loading-spin{to{transform:rotate(360deg)}}
.scene-error{justify-content:flex-end;padding-bottom:65px}.scene-error strong{font-size:13px}
.lab-panel{grid-template-columns:minmax(0,1fr) 310px;align-items:stretch}
.viewport-wrap{min-height:580px}
.lab-controls{display:flex;flex-direction:column;gap:20px;padding:25px;min-width:0}
.lab-controls .control-heading{margin:0}.control-heading .tiny-label{font-size:9px}
.audio-control{width:100%}
.sound-toggle{margin:0;width:100%;display:flex;align-items:center;gap:10px;padding:13px 14px;background:#294332;color:#f2f5e8;border:1px solid #294332;border-radius:3px;font-size:12px;font-weight:600;text-align:left;min-height:48px;transition:background .2s}
.sound-toggle:hover{background:#3e5b3e}.sound-toggle[data-audio-state=waiting]{box-shadow:0 0 0 3px #a0b98a40}
.sound-toggle[data-audio-state=muted]{background:transparent;color:#334b32;border-color:#98ac86}
.sound-toggle[data-audio-state=unavailable]{background:#efe3cf;color:#725733;border-color:#c5a87f}
.sound-toggle[data-audio-state=on]{background:#d6e2c5;color:#2f4b2d;border-color:#8fa87c}
#sound-icon{font-size:20px;font-weight:400;line-height:1}.audio-action{margin-left:auto;font-size:14px;line-height:1}
.sound-help{font-size:10px;line-height:1.6;color:#68765e;margin-top:9px;min-height:32px}
.light-control{width:100%;min-width:0}.slider-label{margin-top:0;font-size:12px;gap:10px}.slider-label output{font-size:35px;flex-shrink:0}
.light-control input[type=range]{margin:20px 0 11px;height:6px}
.range-extremes{font-size:10px}.light-presets{margin-top:15px;gap:7px}.light-presets button{font-size:11px;padding:8px 5px}
.sensor-readout{margin:0;padding:16px}.sensor-readout p{font-size:11px;min-height:0;margin-top:5px}.sensor-readout .tiny-label{font-size:9px}
.code-button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #bdcbb0;background:transparent;padding:12px 10px;font-size:10px;border-radius:2px;min-height:44px}.code-button:hover{background:#e0e7d5}.code-button>span:first-child{font-family:monospace;font-size:14px}
.simulation-note{font-size:9px;line-height:1.7;margin:0;color:#6b7761}
.lab-heading>p{max-width:360px;font-size:13px;line-height:1.9}.lab-heading h2{font-size:clamp(36px,4vw,58px)}
.lab-foot p{font-size:12px}.lab-foot .tiny-label{font-size:9px}
.about-copy .text-link{margin-top:2px}
.awards-section{display:block;padding-block:60px 95px}
.awards-header{display:flex;justify-content:space-between;align-items:end;gap:45px;margin-bottom:32px}
.awards-header h2{font-size:clamp(34px,4vw,52px);margin-top:15px;line-height:1.18}
.awards-header>p{font-size:13px;line-height:1.8;max-width:320px;padding-bottom:3px}
.award-list{display:grid;gap:24px;margin:0}
.award-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,360px);align-items:center;gap:45px;border:1px solid var(--line);background:#f8f9f2;padding:30px}
.award-copy h3{font-size:34px;letter-spacing:-1.2px;margin:10px 0 14px;line-height:1.25}.award-copy h3 small{font-size:21px;color:#73856a;font-weight:400;white-space:nowrap}
.award-copy>p{font-size:12px;line-height:1.9}.award-copy>p.award-summary{margin-top:12px;font-size:12px}.award-copy .text-link{margin-top:24px;font-size:12px}
.award-image{display:block;padding:8px;background:white;border:1px solid #d6ddcf;border-radius:3px;width:100%;text-align:left}.award-image:hover{border-color:#8b9f7b}.award-image img{width:100%;height:auto;object-fit:contain;display:block;aspect-ratio:1.414;max-width:100%}.award-image>span{display:block;font-size:10px;color:#5f7352;padding:10px 5px 3px}
.contact-main>div{max-width:440px}.contact-main p{font-size:14px;max-width:380px}.contact-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.contact-actions .button{font-size:12px;gap:22px;padding:12px 18px}.button.secondary{border:1px solid #8fa47d;background:transparent;color:#30492e}.button.secondary:hover{background:#d1ddbf}.contact-main p.contact-help{font-size:10px;line-height:1.7;margin-top:12px;margin-bottom:0;color:#65765a}
@media(max-width:1100px){.featured-copy{padding:28px}.featured-visual{padding:25px;gap:24px}.lab-panel{grid-template-columns:minmax(0,1fr) 285px}.lab-controls{padding:23px;gap:18px}.award-card{grid-template-columns:minmax(0,1fr) minmax(220px,320px);gap:30px}.award-copy h3{font-size:29px}.contact-main{gap:45px}.contact-main>div{max-width:380px}}
@media(max-width:850px){.hero h1{font-size:48px}.hero-description{font-size:13px}.featured-project{grid-template-columns:minmax(0,1fr)}.featured-visual{display:flex;height:auto;gap:24px;padding:26px}.screenshot-frame{max-width:100%}.featured-copy{display:flex;padding:28px;gap:18px}.featured-copy h3{font-size:32px}.feature-bottom{display:flex;align-items:center;padding:0}.project-brand{font-size:31px}.feature-small{font-size:9px;margin:0}.lab-panel{grid-template-columns:minmax(0,1fr)}.viewport-wrap{min-height:460px}.lab-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px 28px;padding:26px}.control-heading{grid-column:1/-1;grid-row:1}.audio-control{grid-column:1;grid-row:2}.light-control{grid-column:1;grid-row:3}.sensor-readout{grid-column:2;grid-row:2;align-self:stretch;display:flex;flex-direction:column;justify-content:center}.code-button{grid-column:2;grid-row:3;align-self:start}.simulation-note{grid-column:2;grid-row:3;align-self:end;padding-top:65px}.sound-toggle{margin:0}.sound-help{margin-top:9px}.slider-label{margin-top:0}.award-card{grid-template-columns:minmax(0,1fr) minmax(200px,280px);gap:25px;padding:25px}.award-copy h3{font-size:27px}.awards-header{gap:30px}.awards-header>p{max-width:250px;font-size:12px}.contact-main>div{max-width:330px}.contact-actions{gap:10px}.contact-actions .button{font-size:11px;padding:11px 14px;gap:17px}}
@media(max-width:620px){.hero{gap:40px}.hero h1{font-size:clamp(40px,10.6vw,57px);line-height:1.15}.hero-description{font-size:13px;margin-top:22px;max-width:360px}.availability{font-size:9px;letter-spacing:.3px}.mini-board-bottom strong{font-size:13px}.mini-board-bottom>span{font-size:8px;line-height:1.7}.art-note{font-size:10px;left:12px;bottom:1px;max-width:130px;line-height:1.7}.strip-inner{padding-block:17px;min-height:0}.strip-items{gap:10px 16px}.strip-items>span{font-size:10px;gap:16px}.strip-items>span+span:before{width:3px;height:3px}.section-heading h2{font-size:38px}.featured-visual{display:flex;height:auto;padding:20px;gap:22px}.featured-copy{padding:24px;gap:18px}.featured-copy h3{font-size:29px;line-height:1.22}.screenshot-frame{padding:4px}.screenshot-action{font-size:9px;padding:8px 6px 4px}.feature-bottom{display:flex;gap:14px}.project-brand{font-size:28px}.feature-small{font-size:7px;text-align:right}.achievement-note{font-size:9px}.lab-heading h2{font-size:36px}.lab-heading>p{font-size:12px;max-width:100%;margin-top:20px}.viewport-wrap{min-height:370px}.viewport-top{font-size:7px;gap:12px}.viewport-top>span:last-child{max-width:115px;text-align:right;line-height:1.7}.component-label{font-size:8px}.viewport-bottom{font-size:8px}.lab-controls{display:flex;flex-direction:column;padding:23px;gap:23px}.control-heading .tiny-label{font-size:9px}.sound-toggle{font-size:13px;padding:14px 15px;min-height:51px}.sound-help{font-size:10px;min-height:0;margin-top:9px}.slider-label{font-size:13px;margin-top:0}.slider-label output{font-size:38px}.light-presets button{font-size:12px;padding:10px}.range-extremes{font-size:10px}.sensor-readout{display:block;padding:17px}.sensor-readout p{font-size:12px}.sensor-readout .tiny-label{font-size:9px}.code-button{font-size:11px;padding:13px 11px}.simulation-note{font-size:10px;padding:0}.lab-foot p{font-size:11px}.awards-section{padding-block:40px 60px}.awards-header{display:block;margin-bottom:26px}.awards-header h2{font-size:35px;max-width:280px}.awards-header>p{max-width:100%;margin-top:18px;font-size:12px}.award-list{gap:20px}.award-card{grid-template-columns:minmax(0,1fr);padding:23px;gap:24px}.award-copy h3{font-size:28px;margin-block:10px 12px}.award-copy h3 small{font-size:19px}.award-copy>p,.award-copy>p.award-summary{font-size:12px}.award-copy .text-link{font-size:12px;margin-top:20px}.award-copy .tiny-label{font-size:8px;line-height:1.8}.award-image>span{font-size:10px;padding-block:10px 4px}.contact-main h2{font-size:56px}.contact-main>div{max-width:100%}.contact-main p{font-size:13px}.contact-actions .button{font-size:12px;padding:12px 16px;gap:20px}.contact-main p.contact-help{font-size:10px}.scene-loading strong{font-size:15px}}
@media(max-width:380px){.hero h1{font-size:38px}.hero-actions{gap:18px}.availability{font-size:8px}.lab-heading h2{font-size:31px}.viewport-top{font-size:6px}.viewport-wrap{min-height:345px}.lab-controls{padding:20px}.featured-copy h3{font-size:26px}.project-brand{font-size:25px}.feature-small{font-size:6px}.award-card{padding:20px}}
.hero-actions{flex-wrap:wrap}
@media(max-width:380px){.art-note{max-width:85px;font-size:9px;left:0}.attendance-diagram{gap:6px}.flow-step{min-width:58px}.attendance-diagram>i{font-size:10px}}
@media(prefers-reduced-motion:reduce){.scene-loading .loading-spinner{animation:none!important;border-style:dashed}.sound-toggle{transition:none}}
