:root{--theme-color: #78c6a3;--theme-rgb: 120, 198, 163;--theme-transparency: .2;--definition-color: #78c6a3;--theorem-color: #78c6a3;--remark-color: #78c6a3;--problem-color-1: #9f86c0;--problem-color-2: #f48498;--problem-color-3: #809bce;--problem-color-4: #78c6a3;--problem-color-1-rgb: 159, 134, 192;--problem-color-2-rgb: 244, 132, 152;--problem-color-3-rgb: 128, 155, 206;--problem-color-4-rgb: 120, 198, 163;--problem-color-1-dark: #7e69a0;--problem-color-2-dark: #d46a7e;--problem-color-3-dark: #5e7cb5;--problem-color-4-dark: #5daa86;--text-primary: #333;--text-secondary: #666;--text-light: #999;--text-muted: #888;--text-white: white;--text-error: #4caf50;--bg-body: #f1f1f1;--bg-panel: #f9f9f9;--bg-environment: #f8f8f8;--bg-status: #e0e0e0;--bg-error: #f8f8f8;--border-light: #ccc;--border-medium: #ddd;--border-dark: #555;--shadow-light: rgba(0,0,0,.1);--shadow-medium: rgba(0,0,0,.2);--font-base: "Helvetica Neue", Helvetica, Arial, sans-serif;--font-heading: "Helvetica Neue", Helvetica, Arial, sans-serif;--font-size-title: 1.15em;--font-size-panel-title: .95em;--font-size-button: .8em;--font-size-button-text: .7em;--font-size-small: .8em;--font-size-xsmall: .7em;--content-width: 900px;--ribbon-padding: 1em;--border-radius: 4px;--border-radius-lg: 8px;--border-radius-pill: 15px}body{font-family:var(--font-base);font-size:1em;line-height:1.6;color:var(--text-primary);margin:0;padding:0;background-color:var(--bg-body)}.container{max-width:var(--content-width);margin:0 auto;padding:20px}.paper-header{margin-bottom:1em;text-align:center}.authors{display:flex;justify-content:center;flex-wrap:wrap;gap:1em;margin:1.5em 0}.author{display:inline-block}.author-name{font-size:1em;font-weight:500}.affiliations{font-size:1em;color:var(--text-secondary)}.ribbon-header{display:inline-block;position:relative;margin:2em 0;text-align:center}.ribbon-header:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(var(--theme-rgb),var(--theme-transparency));z-index:-1;border-radius:var(--border-radius);box-shadow:0 2px 4px var(--shadow-light)}.ribbon-header h1{font-size:2.2em;padding:var(--ribbon-padding) 1.5em;margin:0;width:100%;color:#000}.ribbon-header h2{font-size:1.8em;padding:calc(var(--ribbon-padding) * .9) 1.2em;margin:0;width:100%;color:var(--text-white)}.environment{margin:1.2em auto;border-left:4px solid;padding:1em;background-color:var(--bg-environment);border-radius:0 var(--border-radius-lg) var(--border-radius-lg) 0;max-width:100%}.env-content-container{display:flex;gap:1em;align-items:center}.env-text-container{flex:1;display:flex;flex-direction:column;justify-content:center}.env-header{font-weight:700;margin-bottom:.5em;font-size:var(--font-size-title);font-family:var(--font-heading)}.env-video,.env-image{flex:0 1 auto;display:flex;flex-direction:column;justify-content:center;max-width:50%}.env-video video,.env-image img{width:100%;height:auto;border-radius:6px;box-shadow:0 2px 6px var(--shadow-medium);max-width:100%}.note{font-size:var(--font-size-small);color:var(--text-secondary);font-style:italic;margin-top:10px}.definition{border-left-color:var(--definition-color)}.theorem{border-left-color:var(--theorem-color)}.remark{border-left-color:var(--remark-color)}.definition .env-header{color:var(--definition-color)}.theorem .env-header{color:var(--theorem-color)}.remark .env-header{color:var(--remark-color)}.problem-container{position:relative}.problem{margin:1.2em auto;border-left:4px solid;padding:1em;background-color:var(--bg-environment);border-radius:0 var(--border-radius-lg) var(--border-radius-lg) 0;max-width:100%}.problem .env-header{font-weight:700;margin-bottom:.5em;font-size:var(--font-size-title)}.problem-header-container{display:flex;justify-content:space-between;align-items:center;width:100%;margin-bottom:0}#problem1.problem{border-left-color:var(--problem-color-1)}#problem2.problem{border-left-color:var(--problem-color-2)}#problem3.problem{border-left-color:var(--problem-color-3)}#problem4.problem{border-left-color:var(--problem-color-4)}#problem1 .env-header{color:var(--problem-color-1)}#problem2 .env-header{color:var(--problem-color-2)}#problem3 .env-header{color:var(--problem-color-3)}#problem4 .env-header{color:var(--problem-color-4)}.dropdown-canvas{max-height:0;overflow:hidden;transition:max-height .5s ease-out;border-radius:0 0 var(--border-radius-lg) var(--border-radius-lg);margin-top:-1em;margin-bottom:2em}.dropdown-canvas.active{max-height:2000px;transition:max-height .5s ease-in}.dropdown-content{padding:20px;color:var(--text-primary);text-align:left}#problem1Canvas.dropdown-canvas{background-color:rgba(var(--problem-color-1-rgb),.1)}#problem2Canvas.dropdown-canvas{background-color:rgba(var(--problem-color-2-rgb),.1)}#problem3Canvas.dropdown-canvas{background-color:rgba(var(--problem-color-3-rgb),.1)}#problem4Canvas.dropdown-canvas{background-color:rgba(var(--problem-color-4-rgb),.1)}.solution-toggle-btn,.overview-toggle-btn{color:var(--text-white);border:none;border-radius:var(--border-radius-pill);cursor:pointer;font-family:var(--font-base);transition:background-color .2s;text-align:center;padding:5px 10px;margin-top:-2px;min-width:140px;white-space:nowrap;font-size:var(--font-size-button);width:auto}.panel-button{padding:5px 10px;color:#fff;border:none;border-radius:var(--border-radius);cursor:pointer;text-align:center;margin-top:2px;transition:background-color .2s;font-family:var(--font-base);font-size:var(--font-size-button);width:100%;box-sizing:border-box}.button-row{display:flex;gap:5px;margin-bottom:3px;width:100%}.button-row .panel-button{flex:1;min-width:0;padding:4px 8px;font-size:var(--font-size-button)}#problem1 .solution-toggle-btn{background-color:var(--problem-color-1)}#problem2 .solution-toggle-btn{background-color:var(--problem-color-2)}#problem3 .solution-toggle-btn{background-color:var(--problem-color-3)}#problem4 .solution-toggle-btn{background-color:var(--problem-color-4)}#problem1 .solution-toggle-btn:hover{background-color:var(--problem-color-1-dark)}#problem2 .solution-toggle-btn:hover{background-color:var(--problem-color-2-dark)}#problem3 .solution-toggle-btn:hover{background-color:var(--problem-color-3-dark)}#problem4 .solution-toggle-btn:hover{background-color:var(--problem-color-4-dark)}#problem3Canvas .panel-button{background-color:var(--problem-color-3)}#problem4Canvas .panel-button{background-color:var(--problem-color-4)}#problem3Canvas .panel-button:hover{background-color:var(--problem-color-3-dark)}#problem4Canvas .panel-button:hover{background-color:var(--problem-color-4-dark)}.algorithm-overview-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1em}.algorithm-overview-header h3{margin:0}.overview-toggle-btn{background-color:var(--problem-color-4);min-width:100px}.overview-toggle-btn:hover{background-color:var(--problem-color-4-dark)}.resources-container{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin:10px 0;padding:0}.resource-item{display:flex;align-items:center;background-color:var(--theme-color);padding:2px 12px;border-radius:20px;text-decoration:none;color:#000;font-family:var(--font-base);font-weight:0;transition:all .3s ease;box-shadow:0 3px 10px var(--shadow-light)}.resource-item:hover{transform:translateY(-3px);box-shadow:0 5px 5px var(--shadow-medium);background-color:#2d69c1}.resource-icon{margin-right:8px;font-size:var(--font-size-xsmall)}.resource-text{font-size:var(--font-size-xsmall)}.canvas-container{display:flex;justify-content:space-between;flex-wrap:wrap;margin:20px 0;width:100%;gap:20px}.canvas-wrapper{display:flex;flex-direction:column;align-items:center;width:calc(50% - 10px)}.canvas-label{text-align:center;margin-bottom:10px;font-weight:700}#problem3Canvas .canvas-label{color:var(--problem-color-3)}.canvas-wrapper canvas{width:100%;aspect-ratio:1/1;background-color:var(--bg-environment);border:1px solid var(--border-light);border-radius:var(--border-radius);box-shadow:0 2px 4px var(--shadow-light)}.status-bar{padding:5px;background-color:var(--bg-status);border-radius:3px;font-size:var(--font-size-xsmall);margin-top:5px;text-align:center;width:95%}.panel-row{display:flex;gap:20px;width:100%;margin-top:15px}.panel-third,.panel-half{border:1px solid var(--border-medium);border-radius:var(--border-radius-lg);padding:15px;background-color:var(--bg-panel);box-shadow:0 2px 4px var(--shadow-light);display:flex;flex-direction:column}.panel-third{flex:1;min-width:200px}.panel-half{flex:1;min-width:300px}.panel-title{font-weight:700;font-size:var(--font-size-panel-title);margin-bottom:15px;padding-bottom:8px;border-bottom:2px solid;text-align:center}#problem1Canvas .panel-title{border-bottom-color:var(--problem-color-1);color:var(--problem-color-1)}#problem2Canvas .panel-title{border-bottom-color:var(--problem-color-2);color:var(--problem-color-2)}#problem3Canvas .panel-title{border-bottom-color:var(--problem-color-3);color:var(--problem-color-3)}#problem4Canvas .panel-title{border-bottom-color:var(--problem-color-4);color:var(--problem-color-4)}.panel-content{flex:1;display:flex;flex-direction:column;gap:10px}.panel-controls{display:flex;flex-direction:column;gap:4px}.control-row{display:flex;flex-direction:column;gap:0px;margin-bottom:4px}.control-row label{font-size:12px;color:var(--border-dark)}.control-row input,.control-row select{padding:4px;border:1px solid var(--border-light);border-radius:var(--border-radius)}.weight-row{display:flex;gap:10px;margin-bottom:8px;width:100%}.weight-control{flex:1;margin-top:0;display:flex;flex-direction:row;align-items:center;gap:2px;min-width:20px}.weight-control label{font-size:var(--font-size-small);color:var(--border-dark);text-align:left;min-width:20px;flex-shrink:0}.weight-control input,.weight-control select{width:100%;padding:3px;border:1px solid var(--border-light);border-radius:var(--border-radius);font-size:var(--font-size-small);box-sizing:border-box;text-align:right;flex:1}#problem3Canvas .export-options{display:flex;flex-direction:column;gap:8px}#problem3Canvas .export-options .panel-button{margin-top:4px}#problem3Canvas select{width:100%;padding:3px;border:1px solid var(--border-light);border-radius:var(--border-radius);font-size:var(--font-size-small);box-sizing:border-box;background-color:#fff;text-align:right;margin-bottom:4px;font-family:var(--font-base)}#problem3Canvas .slider-container{display:flex;align-items:center;gap:0px;width:80%}#problem3Canvas .slider-container input[type=range]{flex:1;margin:4px;min-width:0;max-width:100%;font-size:var(--font-size-button)}#probelm3Canvas .slider-container label{margin:4px;font-size:var(--font-size-button);color:var(--border-dark);flex:0 0 auto;min-width:40px}#problem3Canvas .slider-container span#angleValue{font-size:var(--font-size-button);color:var(--border-dark);text-align:right;min-width:30px;font-variant-numeric:tabular-nums}#problem3Canvas .angle-control{display:flex;flex-direction:column;gap:6px;margin-top:0;width:70%}#problem3Canvas .deployment-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:0;width:100%}#problem3Canvas .auto-play-row{display:flex;align-items:center;gap:5px;margin-right:10px}#problem3Canvas .auto-play-row label{margin:0;font-size:var(--font-size-button);color:var(--border-dark);white-space:nowrap}#problem3Canvas .deployment-toggle{display:flex;align-items:center;gap:3px}#problem3Canvas .deployment-label{font-size:var(--font-size-button);color:var(--border-dark);white-space:nowrap}#problem3Canvas .deployment-options{display:flex;gap:3px}#problem3Canvas .deployment-options input[type=radio]{display:none}#problem3Canvas .deployment-options label{padding:2px 6px;font-size:var(--font-size-button-text);border:1px solid var(--border-light);border-radius:3px;cursor:pointer;background-color:#f0f0f0;transition:all .2s;white-space:nowrap}#problem3Canvas .deployment-options input[type=radio]:checked+label{background-color:var(--problem-color-3);color:var(--text-white);border-color:var(--problem-color-3-dark);font-size:var(--font-size-button-text)}#problem3Canvas .deployment-options label:hover{background-color:#e0e0e0}.algorithm-overview-content{transition:max-height .3s ease,opacity .3s ease;overflow:hidden}.algorithm-overview-content.collapsed{max-height:0;opacity:0;pointer-events:none}.algorithm-overview-content.expanded{max-height:1000px;opacity:1}#problem4Canvas .algorithm-container{display:flex;flex-direction:column;gap:20px;width:100%}#problem4Canvas .panel-third{padding:10px 12px}#problem4Canvas .panel-title{margin-bottom:8px;padding-bottom:5px}#problem4Canvas .panel-content{gap:6px}#problem4Canvas .button-row{margin-bottom:2px;gap:5px}#problem4Canvas .weight-row.compact{gap:1px;margin-bottom:4px}#problem4Canvas .weight-row.compact .weight-control{margin-top:2px}#problem4Canvas .weight-row.compact .weight-control label{font-size:.7em;min-width:0px}#problem4Canvas .weight-row.compact .weight-control input{font-size:.6em;padding:2px 4px}#problem4Canvas .lift-params{margin-bottom:4px}#problem4Canvas .lift-params .weight-row{margin-bottom:2px}#problem4Canvas select{width:100%;padding:3px;border:1px solid var(--border-light);border-radius:var(--border-radius);font-size:var(--font-size-small);box-sizing:border-box;background-color:#fff;font-family:var(--font-base)}#meshStats{margin-top:2px;font-size:.7em;color:#444;text-align:center;font-family:var(--font-base);line-height:1.2}#problem4Canvas .button-row .panel-button{padding:4px 8px;font-size:var(--font-size-button)}#problem4Canvas .model-viewer{width:100%;height:180px;background-color:#f0f0f0;border-radius:var(--border-radius);overflow:hidden;position:relative}#problem4Canvas h5{margin:0;font-size:var(--font-size-button);color:var(--border-dark)}#problem4Canvas .canvas-placeholder{flex:1;background-color:#f0f0f0;border:2px dashed var(--border-light);border-radius:var(--border-radius);display:flex;align-items:center;justify-content:center;min-height:200px;aspect-ratio:1 / 1}.error-header{display:flex;align-items:center;justify-content:space-between;margin:4px 0}.error-header h5{margin:0;font-size:var(--font-size-button)}.toggle{position:relative;display:inline-flex;background:#ddd;border-radius:var(--border-radius-pill);overflow:hidden;font-size:var(--font-size-button)}.toggle input{display:none}.toggle label{padding:1px 10px;cursor:pointer;z-index:1;color:#444;-webkit-user-select:none;user-select:none;text-align:center;flex:1;font-size:var(--font-size-button)}.toggle .slider{position:absolute;top:0;bottom:0;width:50%;background:var(--problem-color-4);border-radius:var(--border-radius-pill);transition:transform .25s ease}#avgError:checked~.slider{transform:translate(100%)}#maxError:checked~.slider{transform:translate(0)}.toggle input:checked+label{color:var(--text-white)}.error-values{display:grid;grid-template-columns:1fr 1fr;gap:4px 15px;font-family:var(--font-base);font-size:var(--font-size-button-text);background:var(--bg-error);border:1px solid var(--border-medium);border-radius:6px;padding:6px 10px;width:100%;box-sizing:border-box;margin-top:6px}.error-values>div{display:flex;justify-content:space-between;align-items:center}.error-values>div:nth-child(3){grid-column:1 / 1;border-top:1px solid #e0e0e0;padding-top:4px;margin-top:2px}.error-values span{color:var(--text-error);margin-left:8px}.video-row{display:flex;gap:10px}.crop-box{height:300px;overflow:hidden;position:relative;flex:0 0 auto}.crop-box video{position:absolute;top:0;left:0;height:auto;width:auto;min-height:100%;min-width:100%}.video1 video{height:100%;position:relative}.video2 video{height:100%;position:relative;top:-20px;left:0}.video3 video{height:100%;position:relative;top:-20;left:-60px}@media (max-width: 768px){.env-content-container{flex-direction:column}.env-video,.env-image{max-width:100%;margin-top:1em}.dropdown-canvas.active{max-height:3000px}.dropdown-content{padding:15px}.resources-container{flex-direction:column;align-items:center}.resource-item{width:80%;justify-content:center}.canvas-container{flex-direction:column;align-items:left}.canvas-wrapper{width:100%}.problem-header-container{flex-direction:column;align-items:flex-start}.solution-toggle-btn{margin-left:0;margin-top:10px;align-self:flex-start}.weight-row{flex-direction:column;gap:5px}.weight-control{width:100%}.panel-third,.panel-half{width:100%;margin-bottom:20px}#problem4Canvas .panel-row,.button-row{flex-direction:column}.button-row .panel-button{width:100%}}
